
数据结构
文章平均质量分 68
MyStringIsNotNull
一个略微执着的白痴!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
K:绪论
Ps:本专题主要用于记录在学习过程中所学习到的知识点及所遇到的问题及对问题的理解和解答。用于记录学习过程中学到的知识点的文章,其标题用K(knowledge)开头,用于记录实践过程中所遇到的问题及其问题的理解和解答的文章,标题用Q(question)开头。欢迎各位大佬指出本文章的问题所在,同时欢迎转载本系列博文,只需在文章开头处著名转载的出处即可。概念:在学习数据结构前,可以首先简单的原创 2017-08-28 21:18:25 · 371 阅读 · 0 评论 -
K:线性表
1.线性表在计算机中可以用顺序存储和链式存储两种存储结构来表示。其中用顺序存储结构表示的线性表成为顺序表,用链式存储结构表示的线性表称为链表,链表又有单链表,双向链表,循环链表之分。2.线性表是由n(n>=0)个数据元素所构成的有限序列,通常表示为(a0,a1,a2…..an-1)。其中下标i标识数据元素在线性表中的位序号,n为线性表的表长,当n=0时表示该线性表为空表。3.对于同一个线性表,其每一原创 2017-08-30 09:19:39 · 450 阅读 · 1 评论 -
K:顺序表和链表的比较
顺序表和链表是线性表的两种基本实现形式(链表还有多种变化形式),对于这两种实现方式,没有一种方法可以称是最好的,他们各自有着各自的特点和优缺点,适用于不同的应用场景。 与顺序表相比,链表较为灵活,它既不要求在预先分配的一块连续的存储空间中存储线性表的所有数据元素,也不要求按其逻辑顺序来分配存储单元,可根据需要进行存储空间的动态分配。因此,当线性表的长度变化较大或长度难以估计时,宜用链表。但在线性原创 2017-08-30 11:10:16 · 539 阅读 · 1 评论 -
K:线性表的实现—顺序表
所谓顺序表,就是顺序存储的线性表。顺序存储就是用一组地址连续的存储单元依次存放线性表中各个数据元素的存储结构。线性表中所有数据元素的类型是相同的,所以每一个数据元素在存储器中占用相同的大小的空间。假设每一个数据元素占b个存储单元,且a0(即线性表中的第一个数据元素)的存储地址为Loc(a0)(此地址也称为线性表的基地址),则第i个数据元素的地址可表示为: Loc(ai)=Loc(a0)+i*b 其原创 2017-08-30 10:48:51 · 401 阅读 · 1 评论 -
K:线性表的实现—链表
单链表的概念: 采用链式存储方式存储的线性表称之为链表,链表中每个节点包含存放数据元素的值的数据域和存放指向逻辑上相邻节点的指针域。若一个节点中只包含一个指针域,则称此链表为单链表。 单链表的特点: 1. 单链表是通过指向后继节点的指针把它的一串节点连接成一个链 2. 以线性表这种第一个数据元素的存储地址作为线性表的起始地址,称做线性表的头指针。一个单链表就是由他的头指针head来唯一原创 2017-08-30 17:37:53 · 459 阅读 · 2 评论 -
k:特殊的线性表—栈
栈(Stack): 栈是一种特殊的线性表,栈中的数据元素以及数据元素之间的逻辑关系和线性表相同,两者之间的差别在于:线性表的插入和删除操作可以在表的任意位置进行,而栈的插入和删除操作只允许在表的尾端进行。其中,允许进行插入和删除操作的一端称为栈顶,另一端称为栈底。通常,将元素插入栈的操作叫做入栈(push),而将元素从栈中进行删除并返回的操作叫做出栈(pop)。栈可以看成是一种受限的特殊的线性表原创 2017-08-31 11:47:39 · 488 阅读 · 0 评论 -
Q:关于栈的常见问题
对于栈,一个常见的问题是:给定一个序列a0,a1,a2,a3…an依次顺序入栈,在元素顺序入栈的过程中,栈中任意一个元素可以选择是否出栈,则其共有几种出栈的可能,给定的出栈序列中,哪种是不可能的。 针对以上的这个问题(实际上是两个),对于出栈的可能的种类数目,其总共有种,详见卡塔兰数问题。wiki链接:https://zh.wikipedia.org/wiki/%E5%8D%A1%E5%A1%9原创 2017-08-31 13:23:24 · 890 阅读 · 2 评论 -
k:特殊的线性表—队列
队列的概念:队列是另一种特殊的线性表,它的特殊性体现在其只允许在线性表的一端插入数据元素,在线性表的另一端删除数据元素(一般会采用在线性表的表尾那端(没被head指针所指的那端)插入数据元素,在线性表的表头(被head指针所指的那端)那端删除数据元素,因为按照此种方式进行操作的队列,无论采用的是顺序存储方式的物理结构还是链式存储方式的物理结构,其插入和删除数据元素的时间复杂度为O(1))。所以队列是原创 2017-09-01 10:52:25 · 476 阅读 · 0 评论 -
K:栈和队列的比较
栈和队列的相同点: 1.都是线性结构,即数据元素之间具有“一对一”的逻辑关系 2.都可以在顺序存储结构和链式存储结构上进行实现 3.在时间代价上,插入和删除操作都需常数时间;在空间代价上,情况相同 4.多链栈和多链队列的管理模式可以相同栈和队列的不同点: 1.删除数据元素操作的位置不同。对于栈而言,其在一端插入数据元素,同时在该端删除数据元素,对于队列而言,其在一端插入数据元素,原创 2017-09-01 12:35:16 · 372 阅读 · 0 评论