数据结构(C)
文章平均质量分 66
数据结构
lxt-cn
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言实现单链表(不带头结点)
在之前的博客中,我写了有关线性表的顺序存储结构的顺序表,顺序表的特点是逻辑关系上,相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任一元素,但是,它在进行插入删除操作时,需要移动大量的数据元素,故而在下面的内容中,讨论的是线性表的另一种存储结构(链式存储结构)中的不带头节点的单链表,由于链表不要求逻辑上相邻的元素在物理位置上也相邻,所以它没有顺序表的弱点,但是也失去了它的优点。 ...原创 2019-04-29 12:33:28 · 1686 阅读 · 0 评论 -
栈和队列习题二
目录 一、实现一个栈,要求实现Push(入栈)、Pop(出栈)、Min(返回最小值)的时间复杂度为O(1) 二、元素出栈、入栈顺序的合法性。如入栈的序列(1,2,3,4,5),出栈序列为 (4,5,3,2,1) 三、一个数组实现两个栈(共享栈) 注:以上三个题的完整代码至 GitHub 查看:https://github.com/lxt-cn/DSCode/tree/master/Qu...原创 2019-08-09 11:46:37 · 334 阅读 · 0 评论 -
栈的应用(迷宫问题)
一、迷宫问题解决思路 回溯法: 顾名思义,就是可以向回退的方法。适合于一个包含多个节点,每个节点有若干个搜索分支的问题,把原问题分解为若干个子问题求解的算法; 具体思路是:当搜索到某个节点发现无法再继续搜索下去时,就让搜索过程回溯(回退)到该节点的前一个节点,继续搜索该节点外的其他尚未搜索的分支;如果发现该节点无法再继续搜索下去时,就让搜索过程回溯到这个节...原创 2019-08-05 11:21:46 · 324 阅读 · 0 评论 -
队列的基本实现(顺序队列、循环队列)
目录 一、队列的简介 二、顺序队列 三、循环队列 一、队列的简介 队列:一种只允许在一端进行插入操作,在另一端进行删除操作的特殊线性表。(先进先出) 如图所示为队列的示意图: 队列的分类: 1、顺序队列:创建顺序队列需申请一块连续的内存空...原创 2019-07-17 10:33:07 · 582 阅读 · 0 评论 -
栈的基本实现
目录 一、栈的简介 二、顺序栈 三、链式栈 一、栈的简介 栈:是一种限定仅在表尾进行插入/删除操作的线性表。表尾称为栈顶,表头称为栈底。不包含元素的空表称为空栈。 如图所示为栈的示意图: 栈的分类: 1、顺序栈:顺序栈和顺序...原创 2019-05-16 15:21:47 · 920 阅读 · 2 评论 -
栈和队列习题
目录 一、两个栈实现一个队列 二、两个队列实现一个栈 一、两个栈实现一个队列 分析:栈是后进先出的,队列是先进先出的。如果要用两个栈实现一个队列,主要的两个接口就是实现入队和出队,所以我们使两个栈始终保持一个为入队栈,一个为出队栈,具体在下面分析。 1、定义 typedef struct QueueByTwoStack { Stack s1; /...原创 2019-07-17 10:33:47 · 229 阅读 · 0 评论 -
复杂链表的复制
一个链表的每个结点,有一个指向next指针指向下一个结点,还有一个random指针指向这个链表中的一个随机结点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。 逻辑:通过图片来看,注意线条颜色; 代码如下: //结点的定义 typedef struct ComplexNode {...原创 2019-05-02 23:10:03 · 159 阅读 · 0 评论 -
链表面试题
在此之前,需说明的是,以下链表题都是单链表,且结点的定义为 typedef int DataType; typedef struct Node { DataType data; struct Node* next; }Node , List, *pNode, *pList; 目录 1、比较顺序表和链表的优缺点, 说说它们分别再什么场景下使用? 2、从尾到头打印...原创 2019-05-01 16:52:09 · 1237 阅读 · 0 评论 -
带头双向循环链表
首先,我们来看一下带头双向循环链表的结构: 目录 带头双向循环链表结点的定义: 相关操作接口: 1、初始化 && 获取一个结点 2、销毁链表 3、尾插 4、头插 5、指定元素查找 6、任意位置插入 7、 尾删 8、头删 9、任意位置删除 10、打印链表 附上完整代码: 带头双向循环链表结点的...原创 2019-05-01 14:06:42 · 486 阅读 · 0 评论 -
C语言实现静态顺序表
首先,我们需要知道的是,什么是线性表?线性表就是 n (n>=0) 个数据元素组成的一个有序序列,可以在任意位置上进行插入和删除操作的线性数据结构。线性表从数据在物理内存存储形式上分为:顺序表和链表。 在下面,我们只讨论顺序表。 顺序表的定义:用一段地址连续的存储单元依此存储数据元素的线性结构。 通过顺序表的定义,我们知道地址...原创 2019-04-25 13:57:41 · 907 阅读 · 0 评论 -
二叉树基本操作(一)
目录 一、二叉树的概念 二、二叉树的分类 满二叉树 && 完全二叉树 三、二叉树的基本操作 1、二叉树的创建 2、二叉树的销毁 3、求二叉树的高度 4、求二叉树叶子结点的个数 5、求二叉树结点的个数 6、求二叉树第 K 层结点的个数 7、判断一个节点是否在一棵二叉树中 注:完整代码请至 Github 查看:https://github.com/...原创 2019-08-20 12:48:56 · 579 阅读 · 0 评论
分享