数据结构
包括栈、链表、二叉树、队列
浪客小子
这个作者很懒,什么都没留下…
展开
-
带头节点循环链表实现队列
队列的特征就是“先入先出”,入队时在链表的尾部插入数据,出队时删除掉头节点后面的节点,需要一个尾指针,始终指向链表的尾部(新加进来的节点)。具体请看原理图:代码实现#include <stdio.h>#include <stdlib.h>typedef struct List{ int data; //数据域 struct List *next; //...原创 2020-04-15 00:19:41 · 1582 阅读 · 0 评论 -
单链表
链表是一种常见的数据结构,与数组在表现形式上很相似,其无空间限制,可以存放很多数据,同样避免了空间浪费,这些都是数组所没有的优点,但也有一个最大的缺点,就是不便于数据访问。链表操作包括数据插入、数据删除、头插、头删、尾插、尾删、销毁等。接下来就用图解的方式来届时链表的操作:链表形式:链表有很多节点形象的依次连接在一起,每个节点都由一个数据域和指针域构成,指针域存放着下一个节点的地址,故而形象...原创 2019-08-13 15:22:56 · 95 阅读 · 0 评论 -
双向循环链表
双向循环链表是一种较为特殊的链表,也是一种常见的数据结构,其头尾相连,各节点之间可互相访问,在单链表中,只能依次向后访问,无法访问上一个节点,而双链表可以依次向下访问也可向上访问。链表形式双链表有很多节点形象的依次连接在一起,每个节点都由一个数据域和两个指针域构成,尾指针存放着下一个节点的地址,头指针存放着上一个节点的地址,故而形象的使各个节点依次相连。插入一个节点:在1、3节点之...原创 2019-08-15 19:27:27 · 839 阅读 · 0 评论 -
数据结构——栈
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的 ...原创 2019-09-19 00:05:58 · 132 阅读 · 0 评论 -
二叉树的前序、中序、后续、层序遍历(包含递归与非递归)
递归形式递归形式遍历比较简单,不做详细论述。前序遍历void Preorder(treenode* root) //前序{ if (root != NULL) { printf("%c", root->data); Preorder(root->left); Preorder(root->right); }中序遍历}void Inorde...原创 2020-03-18 23:58:33 · 165 阅读 · 0 评论 -
数据结构——队列
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的性质入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为队头创建队列typedef struct QueueNode { struct QueueNode* next; int data; }QueueNode;typedef struct Queue { Queu...原创 2020-03-19 18:13:36 · 165 阅读 · 0 评论