摘要:
静态链表借助数组来描述线性表的链式存储结构,结点有数据域data和游标cur 需要注意的地方有如下几点: 1.数组的第一个元素和最后一个元素的data不存放数据。 2.数组第一元素的cur为第一个未使用 数组元素的下标 。 3.数组的最后一个元素的cur为已使用数组元素的下标,开始为0。 4.未使用 阅读全文
摘要:
二叉排序树:插入、删除、查找性能都不错,构建起来也不是很复杂,性能还很稳定的数据结构。 数组:适合查找操作 链表:适合插入和删除操作 所有的代码如下: #include<stdio.h> #include<stdlib.h> typedef struct BiTNode{ int data; //结 阅读全文
摘要:
拓扑排序含义:对一个有向无环图G进行拓扑排序,将G中所有顶点构成一个线性序列,对于图中任一顶点v1和v2,如果有弧<v1,v2>属于图G的,则在序列中v1要排在v2前.面,如果该有向无环图满足上述条件,这样的线性表序列就是拓扑排序序列 1.创建结构体 //定义表结点 typedef struct E 阅读全文
摘要:
该部分主要包括了网的创建和最小生成树的创建 1.结构体的定义 #define INF 99 #define MAX 20 typedef struct netWork{ //网的结构体 int vexNum; int arcNum; char vexs[MAX]; int arcs[MAX][MAX 阅读全文
摘要:
数据结构无向图的邻接链表的存储方式:顶点用一维数组储存,每个顶点构成一个线性表,用单链表的形式表达 1.结构体的创建 #define MAX 20 //线性表中的结点 typedef struct ENode{ int index; //该数据的下标 struct ENode *next;//下一个 阅读全文
摘要:
图主要分为无向图、有向图和网。存储方式主要是邻接矩阵和邻接表,接下来我写的是数据结构无向图邻接矩阵的构建方法 1.结构体 #define MAX 20 //边和顶点的最大数量 typedef char ElemType; typedef struct Graph{ int vexNum; //顶点数 阅读全文
摘要:
线索二叉树的定义:还是按照链二叉树的方法创建,只不过在结点原本为空的左指针改为指向该结点在中序遍历中的前驱,结点原本为空的右指针改为指向该结点在中序遍历中的后继,也就是说把空的指针给利用了起来。 1.定义结构体 与链二叉树不同的是结点增加了两个数据,判断指针下一个连接的是树还是线索 typedef 阅读全文
摘要:
二叉树是比较特殊的树,二叉树的存储方式有顺序存储和链式存储,我们基本上都是用的链式存储, 1.声明结构体 typedef char ElemType; typedef struct BiTNode { ElemType data; struct BiTNode *lchild,*rchild; // 阅读全文
摘要:
循环队列也是队列的顺序存储结构,只是在原先的队列的基础上进行的优化,我在写的时候出现了一些问题,但是我搜索的博客中都没有提到这个问题, 首先: front是指向队列的第一个元素,rear是指向队尾的下一个元素,MAXSIZE是队列的最大容量 (首先我卖个关子,这里MAXSIZE的描述是错的) 队列满 阅读全文
摘要:
队列是一种先进先出的线性表,在表头进行出队列,在表尾入队列,看了很多的队列的文章,发现每个人写的方式都不一样,但是最终都会遵从先进先出这个特性 1.定义结构体 typedef int ElemType; //队列是一种先进先出线性表 typedef struct QNode{ ElemType da 阅读全文