数据结构整理
作者:互联网
时间复杂度(最坏情况):算法中基本操作重复执行的次数是问题规模n的某个函数 f(n) ,记作:T(n) = O(f(n)),他表示随规模n的增加,算法执行时间的增长率和 f(n) 的增长率相同。
线性表的顺序存储结构:用一组地址连续的存储单元依次存储线性表的数据元素。(查找方便但增减复杂除了在末端)
# define LIST_INIT_SIZE 100 // 线性表存储空间的初始分配量 # define LISTINCREMENT 10 // 线性表存储空间的分配增量 typedef struct { ElemType *elem; // 线性空间基址 int length; // 当前长度 int listszie; // 当前分配的存储空间容量(以sizeof(Element)为单位) }sqList;
线性表的链式存储结构(线性链表或单链表):用一组任意的存储单元存储线性表的数据元素(存储单元可以是连续的也可以是不连续的),节点包含2个域:一个数据域,一个指针域指向下一个节点。(查找慢但灵活)
typdef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList;
循环链表:表中的最后一个节点的指针域指向头节点,整个链表形成一个环。
双向链表:比链式存储结构增加多一个指向前节点的指针。
typdef struct DuLNode{ ElemType data; struct DuLNode *prior; struct DuLNode *next; }DuLNode,*DuLinkList;
栈(顺序存储和链式存储):是限定仅在表尾进行插入或删除操作的线性表。表尾称栈顶,表头称栈底。
栈的顺序存储结构:利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。base为栈底指针,始终指向栈底位置若为NULL则栈不存在,若top = base则为空栈。
typdef struct { SElemType *base; SElemType *top; int stacksize; // 当前栈的最大容量 }SqStack;
队列:
标签:线性表,存储单元,指针,链表,DuLNode,整理,数据结构,struct 来源: https://www.cnblogs.com/xcxy-boke/p/11253075.html