![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 52
木头i
这个作者很懒,什么都没留下…
展开
-
线性数据结构——顺序表
顺序表的定义struct SeqList //静态顺序表{ int data[10]; int size;}在这里,我们对代码进行类型重命名和宏定义#define MAX 10typedef int DataType;typedef struct SeqList{ DataType data[MAX]; //存放数据 DataType si...原创 2018-07-20 10:27:29 · 228 阅读 · 0 评论 -
迷宫
整体思路实现一个迷宫,主要是利用栈的“先进后出”特性,每走一步,进行一次入栈,若遇到死路,则向后退一步,即出栈操作,直到找到出口或者后退到出口为止。本篇博客中主要使用回溯法来实现迷宫。回溯法:对一个包括有很多个结点,每个结点有若干个搜索分支的问题,把原问题分解为若干个子问题求解的算法;当搜索到某个结点发现无法再继续搜索下去时,就让搜索过程回溯(回退)到该节点的前一个结点,继续搜索该节点外的其...原创 2018-12-06 23:00:12 · 171 阅读 · 0 评论 -
哈希表—闭散列
原创 2018-12-14 22:03:12 · 214 阅读 · 0 评论 -
哈希表—开散列
原创 2018-12-14 22:05:11 · 299 阅读 · 0 评论 -
链式队列
队列的基本操作队列的定义—带头结点typedef int QDataNode;typedef struct QListNode{ struct QListNode * _next; QDataNode _data;}QListNode, *pQListNode;typedef struct Queue{ pQListNode _pFront;//队头指针 pQListNod...原创 2018-12-09 20:35:09 · 101 阅读 · 0 评论 -
栈、队列面试题
注:本文中所使用的栈、链表的基本操作均在《顺序栈》、《链式队列》中。链接:https://blog.csdn.net/lw13572259173/article/details/82927983https://blog.csdn.net/lw13572259173/article/details/84866916Min栈定义在这里,主要使用的方式为使用两个栈实现一个Min栈,一个...原创 2018-12-09 21:09:35 · 110 阅读 · 0 评论 -
二叉树的基本操作
原创 2018-12-10 20:36:40 · 108 阅读 · 0 评论 -
堆的基本操作
堆的定义typedef int HPDataType;typedef int(*pCompar)(HPDataType left, HPDataType right);typedef struct Heap{ HPDataType* _hp; //保存堆的数组 int _Capecity; //容量 int _size;//元素个数 pCompar _compar; //函数指针...原创 2018-12-10 20:47:40 · 131 阅读 · 0 评论 -
顺序栈
栈的基本操作栈的定义#define MAXSIZE 10typedef int SDataType;typedef struct Stack{ SDataType array[MAXSIZE]; int Top;}Stack, *pStack;初始化void StackInit(pStack pstack){ assert(pstack); pstack->Top...原创 2018-12-06 20:14:26 · 117 阅读 · 0 评论 -
双向链表
双向链表的定义typedef int DataPyte;typedef struct DNode{ struct DNode* _next; struct DNode* _pPre; DataPyte data;}DNode, *pDNode, DList, *pDList;创建一个新结点pDNode BuyNode(DataPyte d){ pDNode pdnode...原创 2018-12-06 20:13:47 · 96 阅读 · 0 评论 -
带头结点的单链表
带头单链表的定义typedef int SHDataType;typedef struct SHListNode{ SHDataType data; struct SHListNode *next;}SHNode, *pSHNode, SHList, *pSHList;创建一个新结点pSHNode SHBuyNode(SHDataType d){ pSHNode pnode ...原创 2018-12-06 20:02:01 · 205 阅读 · 0 评论 -
线性数据结构——链表
链表—一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素,称存储单元为一个结点头指针:指向第一个结点的指针头结点:数据域存放空表标志或表长,指针域存放第一个结点地址的结点 单链表的定义typedef int DataType;typedef struct Node{ DataType data; //数据域 struct Node* nex...原创 2018-07-30 11:21:40 · 244 阅读 · 0 评论 -
链表面试题——不带环问题
注:本篇博客中所使用单链表基本操作函数均可在《线性数据结构——链表》中找到,链接https://blog.csdn.net/lw13572259173/article/details/81281601从尾到头打印单链表void PrintTailToHead(pList plist){ //递归 //从最后一个开始打印,直到第一个 //if (pl...原创 2018-09-16 22:02:52 · 123 阅读 · 0 评论 -
链表面试题2——带环问题
链表带环问题单链表实现约瑟夫环约瑟夫环:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。 从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。pNode LinkListToJoseph(pList * pplist)//单链表实现约瑟夫环{ assert(pplis...原创 2018-09-17 18:16:57 · 156 阅读 · 0 评论 -
链表面试题3——复杂链表
复杂链表的定义typedef struct CLNode //复杂链表{ DataType data; struct CLNode* next; struct CLNode* random; //随机域}clNode, *clpNode, clList,*clpList;原创 2018-09-18 21:15:12 · 159 阅读 · 0 评论 -
二叉搜索树的基本操作
原创 2018-12-13 19:28:32 · 369 阅读 · 0 评论 -
堆的应用
优先级队列定义typedef int PQDataType;typedef struct PriortQueue{ Heap heap;}PriortQueue, *pPriortQueue;初始化void InitPriortQueue(pPriortQueue pqueue){ assert(pqueue); int arr[] = { 53, 17, 78, 9, ...原创 2018-12-13 19:58:38 · 123 阅读 · 0 评论 -
排序
原创 2019-01-15 09:04:15 · 145 阅读 · 0 评论