首页 > 其他 > 详细

数据结构整理

时间:2019-07-26 23:29:18      阅读:80      评论:0      收藏:0      [点我收藏+]

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

队列:

数据结构整理

原文:https://www.cnblogs.com/xcxy-boke/p/11253075.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!