数据结构
文章平均质量分 96
数据结构知识总结
Ritchie_Zeng
欢迎你来到我的星球!
展开
-
数据结构系列学习(九) - 循环队列(Circular_Queue)
循环队列是一种经典的抽象数据类型,实现循环队列之前我们首先要清楚循环队列和普通队列之间的区别以及循环队列的原理,循环队列相较于普通的队列能较大的提高空间的利用率,但是循环队列也有一个非常明显的缺点,就是循环队列是无法扩容的,所以当我们要使用循环队列的时候必须要对数据量有一个较为精准的估算,这样才能发挥出循环队列的优势所在。原创 2022-11-19 13:48:04 · 1103 阅读 · 0 评论 -
数据结构系列学习(八) - 链式队列(Chain_Queue)
在之前的文章中,我们对链栈进行了了解和学习,并使用代码对链栈的功能函数进行了实现,并在测试中成功的执行了这些操作。这篇文章中,我们将对另外一种抽象数据类型——队列进行了解和学习,并对队列的其中一种表现形式——链式队列进行实现。原创 2022-11-14 00:21:11 · 667 阅读 · 0 评论 -
数据结构系列学习(七) - 链栈(Chain_Stack)
链栈,即栈的链式存储结构,链栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。这篇文章我们将对栈的另外一种表达形式——链栈(Chain_Stack)进行了解学习并使用代码对它进行实现。所以我们依照栈的特性,我们就将这个吞吐的口设定在单链表的头节点和第一个有效节点之间,其实也就是我们之前实现过的单链表中的头插和头删功能。初始化函数(Init_Stack);入栈函数(Push);原创 2022-11-12 23:02:41 · 1715 阅读 · 0 评论 -
数据结构系列学习(六) - 顺序栈(Stack)
顺序栈相对来说比较简单,其实也就是阉割版的顺序表,因为栈这种数据结构秉承的原则就是先进后出,所以我们对入栈操作就是顺序表中的尾插操作,我们的出栈操作就是顺序表中的尾删操作。只需要将顺序表中的结构体定义进行修改,然后对其他函数做相应的小改动即可,总体难度偏低。原创 2022-11-11 17:52:09 · 1793 阅读 · 0 评论 -
数据结构系列学习(五) - 双向链表(Double_Linked_List)
在我们之前学习的单链表或者单向循环链表中,链表中的每一个节点保存的都是它的后继节点的地址,而我们今天将要介绍和学习的双向链表却不一样,双向链表中的节点既能保存它的后继节点的地址,也能保存它的前驱节点的地址。在严蔚敏的《数据结构(C语言版)》中是这样说的,链式存储结构中只有一个指示直接后继的指针域,由此,从某个节点出发只能顺指针往后寻查其他节点。双向链表和单链表不同,双向链表每一个节点既保存后继节点的地址,又保存前驱节点的地址。按位置删函数(Delete_pos);头删函数(Delete_head);原创 2022-11-09 22:28:05 · 1735 阅读 · 0 评论 -
数据结构系列学习(四) - 单向循环链表(Circular Linked List)
数据结构学习目录:数据结构系列学习(一) - An Introduction to Data Structure数据结构系列学习(二) - 顺序表(Contiguous_List) 数据结构系列学习(三) - 单链表(Linked_List)在上一篇文章中我们学习并使用C语言对不带头节点的单链表进行了实现,在这篇文章中我们将对另一种的链式存储结构——循环链表中的单向循环链表进行学习并使用代码实现。作为链式存储的另一种存储结构——循环链表,我们首先应该明确的是,单向循环链表和普通的单链表有什么区别?我们用两张原创 2022-11-07 23:05:37 · 2670 阅读 · 0 评论 -
数据结构系列学习(三) - 单链表(Linked_List)
在之前我们系统的学习了数据结构中基础的概念、时间复杂度,并且用代码实现了顺序表(Contiguous_List),在对顺序表的学习和实现的文章总结中,我们提到了顺序表的优势在于可以直接访问顺序表中任意一个元素,但是劣势在于如果再头部或者中间位置进行插入或者删除操作,移动元素所产生时空开销较大。原创 2022-11-02 12:34:47 · 1814 阅读 · 1 评论 -
数据结构系列学习(二) - 顺序表(Contiguous_List)
在计算机内部存储一张线性表(线性结构的数表),最为方便简单的就是用一组连续的地址的内存单元来存储整张线性表。这种存储结构称为顺序存储结构。这种存储结构下的线性表就称为顺序表。一张顺序表包括这几个特征:有一个唯一的表名来标识该顺序表;内存单元连续存储,也就是说一张顺序表必须要占据一块连续的内存空间;数据顺序存放,元素之间有先后关系;定义一张顺序表也就是在内存中开辟一段连续的存储空间,同时我们定义的顺序表也应该实现增删查改这四个功能。原创 2022-10-23 19:43:45 · 3122 阅读 · 0 评论 -
数据结构系列学习(一) - An Introduction to Data Structure
数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。数据元素是组成数据、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。一个数据元素可以由若干个数据项组成,数据项也是数据不可分割的最小单位。数据对象是性质相同的数据元素的集合,是数据的子集。什么是数据结构?数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。原创 2022-10-13 17:28:03 · 1202 阅读 · 0 评论