
数据结构
文章平均质量分 77
此号不用,请关注 夜雨柠檬
请关注,夜雨柠檬
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构 静态链表
做一个豁达而努力的自己。静态链表的定义:用数组来代替指针数组元素,由data和cur组成,data为数据域,cur代替next指针存放的是下一个后继节点的下标,称cur为游标,用数组描述的链表成为静态链表。顺序表的静态链表存储结构:#define MAXSIZE 1000typedef struct Node //这里必须加结构体名称,不加的话只能在主函数声明一个结构体数组,不能在其它函数参...原创 2018-03-15 18:57:10 · 329 阅读 · 0 评论 -
数据结构 图的邻接表
呃,下面该写邻接表了.......邻接表的出现是因为图若是稀疏图,用邻接矩阵会造成空间的浪费,毕竟你要开辟一个一维数组和一个二维数组嘛,而且还是大开小用的那种。邻接表为了避免内存的浪费引入了链式存储,它的处理办法是:1.用一个一维数组存储顶点,当然你也可以用单链表存储,2.用单链表存储顶点的邻接点,可以将顶点改为结构体数组,结构体中存放邻接点的指针,邻接点也创建一个结构体,定义指针...原创 2018-05-08 20:46:32 · 51103 阅读 · 21 评论 -
数据结构 图的邻接矩阵
图的邻接矩阵的存储方式是用两个数组来实现的,一个一维数组存储顶点信息,一个二维数组存储线(无向图)或弧(有向图)的信息。设图G有n个顶点,则邻接矩阵是一个n × n的方阵,定义为:无向图的邻接矩阵,两个顶点有边则为1,否则,为0;因为是无向图arc[i][j] = arc[j][i],所以矩阵为对称矩阵,对角线为自己到自己的边,邻接矩阵中,行之和或者列之和都为各顶点度的总数。设图G有是网图,有n个...原创 2018-05-07 21:19:59 · 36029 阅读 · 10 评论 -
数据结构 二叉树的建立与遍历
二叉树(Binary Tree)是n(n >= 0)个节点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两颗互不相交的,分别称为根节点的左子树和右子树的二叉树组成。二叉嘛,也就是每个节点最多有两个分支。图示:二叉树具有五种基本形态:1.空二叉树2.只有一个根节点3.根节点只有左子树4.根节点只有右子树5.根节点既有左子树又有右子树特殊的二叉树:1.斜树(只有左子树的称为左斜...原创 2018-05-03 17:07:19 · 25748 阅读 · 7 评论 -
数据结构 图的遍历
图的遍历分为深度优先遍历(Depth_First_Search)和广度优先遍历(Breadth_First_Search),分别简称为DFS和BFS。图的遍历是从某一个顶点出发,访问其他顶点,但是不能重复访问(每个顶点只能访问一次)。深度优先遍历(DFS):深度优先,就是沿着某一个方向不重复的一直便利下去,若走到尽头,退到上一个顶点,寻找附近有没有顶点,有且不重复的话,接着便利,否则退到上一个顶点...原创 2018-05-11 18:34:15 · 10128 阅读 · 4 评论 -
数据结构 链队列
做一个豁达而努力的自己。链栈节点的存储结构:typedef struct QNode{ int data; //存储数据 QNode *next; //下一个节点的指针地址}QNode;链栈的存储结构:typedef struct{ QNode *front; //头指针 QNode *rear; //尾指针}LinkQueue;入队:Stat...原创 2018-04-11 18:25:26 · 261 阅读 · 0 评论 -
数据结构 两栈共享空间
做一个豁达而努力的自己。两栈共享空间的存储结构:#define MAXSIZE 100typedef struct{ SElemType data[MAXSIZE]; //用以存储数据 int top1; //栈1的栈顶 int top2: //栈2的栈顶}SqDoubleStack;初始化:void InitDouStack(SqDoubleStack...原创 2018-03-28 17:22:49 · 647 阅读 · 0 评论 -
数据结构 顺序循环队列
做一个豁达而努力的自己。顺序循环队列的存储结构:typedef struct { int *base; //基地址 int front; //对头指针 int rear; //队尾指针}SqQueue;入队:Status EnQueue(SqQueue &q, int e){ if((q.rear + 1) % MAXSIZE == q原创 2018-04-10 11:58:40 · 675 阅读 · 1 评论 -
数据结构 链栈
做一个豁达而努力的自己。链栈的存储结构:typedef struct StackNode{ SElemType data; StackNode *next;}StackNode, *SLinkStack;链栈的初始化:void InitStack(SLinkList &S){ S = NULL;}判断是否为空:Status StackEmpty(SLinkL...原创 2018-03-26 23:53:50 · 357 阅读 · 0 评论 -
数据结构 顺序栈
做一个豁达而努力的自己。栈的定义:只能在表的一端(栈顶)进行插入和删除的线性表。逻辑结构:与线性表相同,仍为一一对应的关系。存储结构:用顺序栈和链栈存储均可,但以顺序栈更为常见。运算规则:只能在栈顶(top)进行运算,且访问节点时只能先进后出(FILO),或后进先出(LIFO)的原则。实现方式:关键是在写压栈和弹栈的函数具体的实现依顺序栈和链栈的不同而不同,基本的操作有压栈,弹栈,读取栈顶元素,建...原创 2018-03-26 18:31:26 · 912 阅读 · 0 评论 -
数据结构 双向链表
做一个豁达而努力的自己。双向链表的定义:在单链表的每个节点中,再设置一个指向其前驱节点的指针域。线性表的双向链表的存储结构:typedef struct DulNode{ ElemType data; struct DulNode *prior; struct DulNode *next;}DulNode, *DulLinkList;代码:#include <iostrea...原创 2018-03-20 15:54:39 · 308 阅读 · 0 评论 -
数据结构 单链表
做一个豁达而努力的自己。单链表的定义:单链表连式存储的数据结构,是用任意的存储位置存储数据。线性表的单链表存储结构:typedef struct Node{ ElemType data; struct Node *next;}Node, *LinkList;无论链表是否为空,头指针均不为空,头指针是链表的必要元素。生成头指针:LinkList head;头结点可以不存储数据,同时它可以...原创 2018-03-13 23:35:09 · 235 阅读 · 0 评论 -
数据结构 一元多项式相加
做一个豁达而努力的自己。相加的部分也就是用一个新的链表存储,,,和单链表尾插的方法差不多,,,也就是分了3种情况,,,代码:#include <iostream>using namespace std;//一元多项式的存储结构typedef struct Node{ int coe; //系数 int exp; //指数 Node *nex...原创 2018-03-22 23:21:30 · 3287 阅读 · 0 评论 -
数据结构 顺序表
做一个豁达而努力的自己。定义:顺序表是线性表的顺序存储结构,指的是用一段连续的存储结构依次存储线性表的数据元素。线性表的顺序表存储结构:#define LIST_INIT_SIZE 100 //线性表存储空间初的始化分配量typedef struct{ ElemType *elem; //存储空间基地址 int length; //当前长度}SqList;顺序存储结构...原创 2018-03-13 01:30:49 · 374 阅读 · 0 评论 -
数据结构 逆波兰表达式求值
mystack头文件代码:#define MAXSIZE 100//顺序栈的存储结构template <class T>struct sqstack{ T *base; T *top;};//初始化栈template <class T>void InitSqstack(sqstack <T> &s){ s.b...原创 2018-06-08 14:20:35 · 1125 阅读 · 0 评论