数据结构
可能是阿文叭
这个作者很懒,什么都没留下…
展开
-
数据结构—顺序表的实现
#include<stdio.h> #include<iostream> #define MAX_SIZE 100 using namespace std; typedef int Elementtype; typedef struct { int date[MAX_SIZE]; Elementtype x; int Length; }List; //初始化顺...原创 2019-03-10 16:49:09 · 91 阅读 · 0 评论 -
链式表的实现
#include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; typedef int Elementtype; typedef int Position; typedef struct Lnode { Elementtype data; Lnode *Nex...原创 2019-03-10 16:56:48 · 672 阅读 · 0 评论 -
栈的实现&用一个数组空间实现两个栈
栈是限制线性表中元素的插入和删除只能在线性表同一端进行操作的一种特殊的线性表,允许插入和删除的一端称为栈顶,另一端固定为栈底。 注意:操作只能在栈顶进行操作。 我个人觉得栈还是很好理解的,就不做过多介绍。 栈的共享存储单元:一个数组实现两个栈。 如下图所示,分配一个数组空间,分别在数组的两边实现一个栈, #include&lt;stdio.h&gt; #include&lt;stdlib.h&g...原创 2019-03-15 20:27:23 · 521 阅读 · 0 评论 -
队列&循环队列的实现
队列的定义: 仅仅允许在一端进行插入,另一端进行删除的线性表。插入的一端称为队头,删除的一端称为队头。如下图所示: 顺序队列:将队列中的元素全部存入一个一维数组中,数组的低下标一端为队头,高下标一端为队列尾部,这样的队列称为顺序队列。在顺序队列中,队列的存储空间从queue【0】-queue【maxsize-1】。当数据出队列时,队头的位置一直不断变大。 这样很可能会出现问题:队列尾部已经指向所...原创 2019-03-15 20:48:46 · 223 阅读 · 0 评论 -
链表的个人比较
顺序链表没有指针,直接以数组下标就可以访问,时间复杂度为O(1)。但是插入和删除操作效率低,因为需要进行移位。其存储空间时静态分配的。因为是基于数组,所以在程序执行之前必须预先分配。若空间分配过大,使用不完,则会造成浪费。若太小,会造成溢出等越界情况。 单链表只有一个next指针,指向下一个节点所在的位置,在查找或者访问,删除,插入的时候,需从头遍历,其时间复杂度为O(n)。链表的空间是动态分配的...原创 2019-03-11 18:12:10 · 202 阅读 · 0 评论 -
双向链表的实现以及一个小小的错误记录
#include&lt;stdlib.h&gt; #include&lt;stdio.h&gt; #include&lt;iostream&gt; using namespace std; typedef int Position; typedef struct Circle { int Data; Circle *Pre,*Next; }MyCircle; bool In_Ins原创 2019-03-11 21:36:22 · 350 阅读 · 0 评论 -
深度优先搜索和广度优先搜索
深度优先搜索(DFS):当遍历图中的节点时,DFS就会递归的访问它的所有未被访问的相邻节点。因为递归的关系,遍历的时候会先遍历完树的某一分支之后,再遍历另一分支。 广度优先搜索(BFS):BFS再进一步深入访问其他顶点之前,检查起点的所有相邻顶点。可以理解为像树一样,一层检索完了再向下一层检索。 深度优先搜索和广度优先搜索都有很多种搜索结果,依据上图,列出下面几种搜索结果: 深度优先: 1,2,...原创 2019-04-12 15:10:36 · 265 阅读 · 0 评论