数据结构
学了一门编程语言不知道能干啥?来学数据结构就对啦! 学会编程相当于会砌猪圈的泥瓦匠,学完数据结构就会盖个双层小楼啦。同时还可以一窥构筑摩天大厦的奇门武功! 祝各位学习愉快
人间小辣鸡
这个作者很懒,什么都没留下…
展开
-
学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(队列:链式存储结构)
经过长途跋涉,队列的顺序存储结构总算告一段落。今天我们要用链表来实现队列。队列中只允许在单链表的表头进行出队操作,在表尾进行插入操作,因此需要使用队头front和队尾rear两个指针,用front指向队首结点,用rear指向队尾结点。和链栈一样,链队列也不考虑队满溢出的情况。对于链队列的声明,首先我们要像单链表一样声明一下数据结点:typedef struct node{ Ele...原创 2020-04-08 11:48:12 · 164 阅读 · 0 评论 -
学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(队列:顺序存储结构(二))
上次我们提到,队列的顺序存储结构是完全可以优化的,从而避免不必要的空间上的浪费,今天,我们就来学习,并且实现一下。解决这个问题的主要办法就是把队列的头和尾连接起来,成为一个环形的队列,我们称它为环形队列或循环队列。环形队列首尾相连后,当队尾指针rear==MaxSize-1后,再前进一个位置就到达0,于是就可以使用另一端的空位置存放队列元素了。实际上存储器的地址总是连续编号的,因此我们可以使用...原创 2020-04-07 19:33:00 · 165 阅读 · 1 评论 -
学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(队列:顺序存储结构(一))
Long time no see.不知道为什么,可能因为最近事情比较多,也可能是因为我自己的懒惰(小伙伴们不要学我),我竟然将近20天没有更新我的博客了,想必长时间没有打理,它已经发霉长蘑菇了叭。长时间的停工会让我一一种全新的,更饱满的热情投入到博客的写作中来,希望大家也可以多给我点几个给力的赞,或者小小的打赏,嘿嘿。上次我们讲完了栈,简单回顾一下,栈的特点是什么?后进先出(先进后出)。W...原创 2020-04-07 16:18:40 · 145 阅读 · 0 评论 -
学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(栈:链栈)
上一次我们了解了栈是怎么回事,并且讲了栈的顺序存储结构,也就是顺序栈。相信大家的求知欲望都很强,绝不会满足于顺序栈。指针是C语言的灵魂,写一个顺序栈用不到指针怎么能行呢?这样C语言不就被大材小用了嘛......开个玩笑,不管是顺序栈还是链栈,它都有自己的优缺点,没有绝对的谁更好谁更差。今天我们就试着用链式存储来实现一下栈。链栈的示意图如下:它看起来比较奇葩,它并没有把链表的尾作为栈顶,...原创 2020-03-17 20:42:25 · 135 阅读 · 0 评论 -
学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(栈:顺序栈)
学习完线性表的有关内容,相信大家对线性表(无论是顺序表还是链表)已经有了非常清楚的认识,包括它的结构,功能,以及基础操作,甚至是详细的代码。这些东西牢记于心之后,我们就不能再满足当前的所学了。今天我们一起来学习一下一种特殊的线性表——栈。为什么说它是线性表呢?因为它的结构以及基本操作和线性表大抵类似。为什么说它特殊呢?还是因为它的结构以及基本操作和线性表大抵类似(故意绕一个弯子,手动滑稽)。类似和...原创 2020-03-17 17:37:23 · 123 阅读 · 0 评论 -
学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(单链表的简单应用)
单链表的基本操作都学到手了,代码都敲得滚瓜烂熟了甚至敲到发霉,可就是不知道怎么用?那就练练!不就是几道题吗?题虽简单,用处却不小,至少让你明白了单链表的基本操作可以玩的这样6,脱离了之前的那些写好的现成的函数,代码可就长上加长了......直接上题,贴代码注释好无聊啊......没办法,学习应用就是这样,仔细看看琢磨琢磨其实也挺有趣。人一旦和一个东西呆一起久了,基本上都会产生感情,希望大家对代码也...原创 2020-03-15 22:35:07 · 158 阅读 · 0 评论 -
学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(线性表:链式存储结构)
顺序表是线性表的一种,它必须占用一整块事先分配好的存储空间,这样会降低存储空间的利用率。为了解决这个问题,今天,我们来学习另外一种线性表——链表。链表是一种可以实现存储空间动态管理的链式存储结构。线性表的链式存储结构称为链表。其中每个存储结点不仅包含元素本身的信息(称为数据域),而且包含了表示元素之间逻辑关系的信息,在C语言中使用指针来实现,这称为指针域。如图1所示,每个结点的数据域包含了这个...原创 2020-03-12 17:14:18 · 379 阅读 · 1 评论 -
关于顺序表操作的一点说明
在一起学习完顺序表的操作之后,不知道你有没有这样的疑问,譬如这个函数:SqList* CreateList(SqList* L,ElemType a[],int n){ int i=0,k=0; L = (SqList*)malloc(sizeof(SqList)); while(i < n){ L->data[i]=a[i]; ...原创 2020-03-09 08:07:43 · 1693 阅读 · 2 评论 -
顺序表的应用示例
学习完最基本的线性表操作,我们开始学习运用这些强大的操作。一开始,大家可能很不习惯使用这些操作,但还是那句话,熟能生巧。只要你肯下功夫,什么都是手到擒来,代码都能变成金块。我们今天来讲一下这道例题:假设有两个集合A和B(元素都按非递减有序排列),分别用两个线性表La和Lb表示。利用线性表的基本运算设计一个算法求一个新的集合C,将两个集合的并集放在线性表Lc中,Lc仍按非递减有序排列。大...原创 2020-03-08 16:26:17 · 1246 阅读 · 2 评论 -
学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(线性表:顺序存储结构)
前面我们了解了什么是数据结构,现在我们正式开始数据结构的学习。古人说,工欲善其事,必先利其器。想要用C语言实现数据据结构,必须先准备好集成开发环境。在这里我给大家推荐以下几款:微软的Visual Studio Code(下面简称vs code),Jet Brains的Clion,以及微软的Dev C++。其中vs code需要大量自己手动配置的步骤,可能比较麻烦,但是它的界面比较美观。Dev C+...原创 2020-03-08 14:47:29 · 651 阅读 · 0 评论 -
听起来高深莫测的数据结构原来是这个样子!(数据结构简介)
大家好,今天开始,我们将一起来学习数据结构这门课。亲爱的读者们,你们可能学过C、C++、Java、python、Golang、C#等编程语言,但是不知道能干啥?写个"Hello,world",还是判断平年闰年?嗷,还会冒泡排序呢!但是这些用法都很基础啦!想更上一层楼吗?来学数据结构就对啦!掌握编程语言相当于会砌猪圈的泥瓦匠,学完数据结构就会盖个小平房啦!同时还可以一窥构筑摩天大厦的奇门武功! 通往...原创 2020-03-08 09:28:05 · 235 阅读 · 0 评论