数据结构
会飞的猪宝宝啊
这个作者很懒,什么都没留下…
展开
-
定长顺序表
一个线性表是n个数据元素的有限序列,分为顺序表和链表。顺序表指用一组地址连续的存储单元依次存储线性表的数据元素,即逻辑相邻,物理也相邻;链表指用一组任意的存储单元存储线性表的数据元素,即逻辑相邻物理不相邻。 (1)存在唯一的一个被称作“第一个”的数据元素 (2)存在唯一的一个被称作“最后一个”的数据元素 (3)除第一个外,集合中的每一个数据元素只有一个前驱 (4)除最后一个外,集合中的每一原创 2018-02-01 20:35:45 · 103 阅读 · 0 评论 -
不定长顺序表
不定长顺序表和定长顺序表在很多地方都是一样的,只不过采用了动态分配的方式处理数据。具体代码如下: 头文件 desqlist.h #pragma once //不定长顺序表 #define INIT_SIZE 10 //初始化单元数量 typedef struct DSeqList { int *elem;//指向存储数据的内存 int length;//有效数据个数 int list原创 2018-02-02 17:53:32 · 188 阅读 · 0 评论 -
单链表
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据。链表中的数据是以结点来表示的,每个结点的构成:数据域+ 指针(指示后继元素存储位置),数据域就是存储数据的存储单元,指针就是连接每个结点的地址数据。 结构图如下: 头文件list.h #pragma once //带头节点的单链表 typedef struct Node { int data; struct原创 2018-02-02 18:07:57 · 230 阅读 · 0 评论 -
带头节点的循环链表
带头节点的循环链表,循环链表的尾节点指向头节点 头文件clist.h #pragma once //带头节点的循环链表 //循环链表的尾节点指向头节点 typedef struct CNode { int data;//数据域 struct CNode *next;//指向下一个节点的地址 }CNode,*CList; void InitList(CList plist); /原创 2018-02-02 20:49:50 · 5027 阅读 · 0 评论 -
双向链表
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。它其实就是单链表的基础上加入了前驱指针,能够很方便的访问它的前一个数据节点。 和单向链表相比有以下优势: 插入删除不需要移动元素外,可以原地插入删除 可以双向遍历 头文件dlist.h #pra原创 2018-02-03 12:47:10 · 164 阅读 · 0 评论 -
树
BST树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: BST树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中; ...转载 2019-09-20 11:12:43 · 87 阅读 · 0 评论