其他分享
首页 > 其他分享> > 数据结构整理

数据结构整理

作者:互联网

时间复杂度(最坏情况):算法中基本操作重复执行的次数是问题规模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