数据结构
文章平均质量分 59
饮一盏岁月留香丶
这个作者很懒,什么都没留下…
展开
-
二叉树实现
二叉树的链式结构二叉树是一种特殊的树形结构,由根节点加上左右两棵子树组成,每个节点最多有两棵子树,不存在度大于2的节点。没有节点存在时也称为空二叉树。二叉树不适合顺序存储,顺序结构只包含有效元素,没法确定哪个节点有还是没有左右孩子这层关系。链式结构更适合建立二叉树。二叉树有双亲表示法,孩子表示法,孩子兄弟表示法等,这里实现用的是孩子表示法,即节点中表示出与其孩子的关系创建一个二叉树节点的结构,left指针指向左孩子,right指向右孩子typedef int BDatatype;typedef原创 2021-08-13 22:13:07 · 110 阅读 · 0 评论 -
带头双向循环链表的实现
带头双向链表,比单向链表多了一个头节点,和一个字段一个是指向前一个节点的指针,一个是指向后一个节点的指针。typedef int Datatype;typedef struct SlistNode { struct SlistNode* prev;//指向前一个的指针 Datatype data;//值域 struct SlistNode* next;//指向后一个的指针}Node;创建一个节点Node* BuySlistNode(Datatype data) { Node* newn原创 2021-08-06 02:49:57 · 83 阅读 · 0 评论 -
无头单链表实现
链表的结构是一个一个节点,每个节点中有指向下一个节点的指针域和自身的值域,typedef int Datatype;typedef struct SlistNode { Datatype data; struct SlistNode* next;}Node;初始化操作这个head是指向链表的指针,链表作为线性结构一定有起始位置,这样才能找到下一个节点的位置。初始化那就让这个指针指向空。void SlistInit(Node** head) { assert(head); *head =原创 2021-08-06 02:33:14 · 121 阅读 · 0 评论 -
顺序表实现
对顺序表的理解用线性结构来组织元素的方式称为线性数据结构,元素在一段连续空间上按顺序存储,每个元素都有唯一的前驱和后缀。数组和顺序表都是经典的线性数据结构。顺序表采用数组存储元素,也在数组上完成对顺序表操作。动态顺序表实现这里给将数据类型重定义为Datatype类型,如果以后要存其他类型的元素只需要把修改int就够了。typedef int Datatype;typedef struct Seqlist { Datatype* array;//指向动态开辟的顺序表的空间 int size;//原创 2021-08-06 01:32:42 · 114 阅读 · 0 评论