
数据结构
吃菜拌胡椒
努力且享受生活
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1.1 线性表 - 顺序存储结构
1. 顺序存储结构的定义typedef struct seqence_list{ datatype *data; int last; int size;}sqlist;2 主要操作的实现2.1 初始化sqlist *init_sl(int size){ sqlist *sl = calloc(1, sizeof(sqlist)); // 分配顺序表 if( sl!=NU...原创 2019-08-28 12:33:14 · 282 阅读 · 0 评论 -
1.2.1 线性表 - 单链表
1 单链表的定义单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点(如图)来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置)。元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。如果链表的每个结点中只包含一个指针域,那就叫做单链表单链表最后一个节点的指针指向NULL原创 2019-08-28 14:59:42 · 306 阅读 · 0 评论 -
1.2.2 线性表 - 单循环链表
1 单循环链表的定义在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点,整个链表形成一个环。2 单循环链表与单链表的差异空链表的判断条件非空链表的循环条件3 单循环链表操作的实现初始化 插入 显示 释放4 带尾针的单循环链表5 题目据说着名犹太历史学家 Josephus有过以下的故事6 单循环链表的优缺点原创 2019-08-28 15:16:08 · 307 阅读 · 0 评论 -
1.2.3 线性表 -双向链表
1 双向链表的定义在双向链表的界定中有两个指针域,其一指向直接后继,另一个指向直接前驱。typedef Node { ElementType Data; struct Node *Prev; struct Node *Next;}dlistnode, *dlinklist;2 双向链表主要操作的实现2.1 初始化一个空双向链表dlinklist init_l...原创 2019-08-28 15:35:44 · 148 阅读 · 0 评论 -
1.3.2 线性表 - 队列
1 队列的定义限定在表尾进行插入和在表头删除的操作的线性表,又称先进先出的线性表。队列结点struct queue_node { QNdatatype data; struct queue_node *next;};队列管理者typedef struct{ struct queue_node *front; struct queue_node *tail; int siz...原创 2019-09-02 11:46:42 · 157 阅读 · 0 评论 -
2.1 二叉树的遍历
1 递归遍历1.1 先序遍历规则:根 -> 左 -> 右void travel_prev(linktree root){ // 跳出递归 if (root == NULL ){ return; } // 遍历 printf("%ld\t", root->data); // 访问根节点 travel_prev(root->lchild); // 先序...原创 2019-09-02 11:54:47 · 128 阅读 · 0 评论 -
3.1.1 排序 - 内排序
数据结构中基本排序(插入排序、冒泡排序……)的简单理解与C语言实现原创 2019-09-03 20:54:32 · 153 阅读 · 0 评论 -
1.3.1 线性表 - 栈
1 栈(stack)的定义限定在表尾进行插入和删除的操作的线性表,又称先进后出的线性表。栈管理者typedef struct stack{ struct node *Top; int Size;}maneger, *stackManeger;栈结点typedef struct node { int Data; struct node *Next;}node, *stack...原创 2019-08-28 23:52:47 · 114 阅读 · 0 评论 -
3.1.2 排序 - 外排序(归并排序)
外排序 - 归并算法大致思路流程以及代码实现原创 2019-09-05 10:09:25 · 396 阅读 · 0 评论