《数据结构教程(第四版)》读书笔记-第二章 线性表

线性表:具有相同特性的数据元素的一个有限序列。线性表的长度为n。一对一结构。

线性表的顺序存储结构——顺序表
物理结构上连续。

线性表的链式存储结构——链表
用一组任意的存储单元存放数据元素。可以连续可以不连续。除了存储数据域Data外,还要存储指针域next和prior。每个链表都有一个头结点,数据域为空,通过头结点的指针唯一表示该链表。

单链表
基本运算:建立(头插入/尾插入),初始化、销毁、判断为空、插入、删除、查找。
头插入法:时间复杂度O(n),缺点是表顺序与输入顺序相反。
《数据结构教程(第四版)》读书笔记-第二章 线性表_第1张图片

void createrlistF(Linklist *&L,ElemType a[],int n)
{ Linklist *s;
 int i;
 L=(linklist*)malloc(sizeof(Linklist));//创建头结点
 L->next=NULL; //初始为空
 for(i=1;imalloc(sizeof(Linklist));
  s->data=a[i]); //创建数据节点*s
  s->next= l-next; //将*s插入到原开始结点之前,头结点之后
  l->next= s;
 }
}

尾插入法:时间复杂度O(n),正序
《数据结构教程(第四版)》读书笔记-第二章 线性表_第2张图片

void createrlistF(Linklist *&L,ElemType a[],int n)
{ Linklist *s;
 int i;
 L=(linklist*)malloc(sizeof(Linklist));//创建头结点
 r=L; //r始终指向尾结点,初始时相当于指向头结点
 for(i=1;imalloc(sizeof(Linklist));
  s->data=a[i]); //创建数据节点*s
  r->next= s; //将*s插入r之后
  r= s;
 }
  r->next= NULL;//清空尾结点next
}

双链表
循环单链表、循环双链表
约瑟夫环问题

你可能感兴趣的:(数据结构)