
数据结构
文章平均质量分 89
若年封尘
这个作者很懒,什么都没留下…
展开
-
一文搞懂循环队列的不同配置问题
本文主要详细讲解了数据结构中循环队列在3种不同配置下所延申出来的一些问题,而对于链式队列则没什么好说的。注意本文所说的配置是指:什么时候是队空状态,什么时候是队满状态,入队操作怎么执行,出队操作怎么执行。它们在不同的规定下会体现出不同的形式,这些不同的形式就是队列的配置了。文章目录一、正常配置队空状态:入队操作:出队操作:队满状态:计算当前队列中元素个数问题:二、非正常配置1队空状态:入队......原创 2020-04-17 10:19:07 · 1580 阅读 · 8 评论 -
数据结构一些常见术语的中英文对照
数据 Data数据元素 Data element数据项 Data item数据结构 Data structure逻辑结构 Logical structure数据类型 Data type指针 Pointer顺序存储结构 Sequential storage structure链状存储结构 Linked storage structure稠密索引 Dense index稀疏索引 Sparse index转载 2020-12-03 12:35:40 · 13869 阅读 · 3 评论 -
一文搞懂共享栈
文章目录共享栈的概念共享栈的实现用两个栈模拟队列共享栈的概念共享栈:两个栈共享同一片存储空间,这片存储空间不单独属于任何一个栈,某个栈需要的多一点,它就可能得到更多的存储空间;两个栈的栈底在这片存储空间的两端,当元素入栈时,两个栈的栈顶指针相向而行。忘记栈的概念的朋友可以回顾一下:栈是一种特殊的线性表,是一种只允许在表的一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一...原创 2020-04-18 16:17:14 · 14012 阅读 · 36 评论 -
彻底搞懂双端队列及输入/输出受限的双端队列
文章目录双端队列相关概念双端队列应用设有一个双端队列,元素进入该队列的顺序是1,2,3,4试分别求出满足下列条件的输出序列。1.不可能通过输入受限的双端队列输出的序列是?2.不可能通过输出受限的双端队列输出的序列是?3.既不能由输入受限的双端队列得到,也不能由输出受限的双端队列的输出序列?双端队列相关概念双端队列:两端都可以进行入队和出队操作的队列。栈:限制其一端既不允许插入也不允许删除。...原创 2020-04-17 19:27:42 · 21752 阅读 · 19 评论 -
用栈实现表达式转换(中缀转后缀、中缀转前缀)-----栈和队列的应用2
中缀转后缀将输入的字符串从左到右扫描;若当前字符是操作数则直接打印;若当前字符是运算符,先判断栈是否为空,若是,则直接将此操作符压入栈;若不是,则查看栈顶运算符,若当前运算符优先级<=栈顶运算符优先级,就把栈顶运算符出栈并写入当前得到的结果表达式。循环这个过程,直到当前运算符优先级>栈顶运算符优先级,则将扫描到的运算符入栈;若当前字符是左括号则直接压入栈;若当前栈顶运算符是...原创 2020-04-12 09:48:20 · 1393 阅读 · 3 评论 -
输出序列与表达式转换-----栈和队列的应用1
栈和队列的应用:一、输出序列给定出栈序列判断栈容量:如果把图中出栈序列改为“入队后得到的出队序列”,则出栈序列不变(因为队列是先进先出);如果把图中出栈序列改为“入栈后得到的出栈序列”,则出栈序列逆序(因为栈是先进后出)。 经典例题:已知出栈顺序求可能的入栈顺序。要求的出栈顺序:P1、……、Pi、……、Pj、……Pk、……、Pn可能的入栈顺序:其中只有第四组无法实现,...原创 2020-04-10 23:35:18 · 784 阅读 · 13 评论 -
小白也能看懂的数据结构:栈与队列
文章目录栈一、顺序栈二、链栈队列一、顺序队列二、链队列栈逻辑结构:先进后出栈(stack)是一种只能在一端(栈顶,另一端叫栈底)进行插入或删除操作的线性表。栈的逻辑结构属于线性表,只不过在操作上加了一些约束。存储结构:一、顺序栈顺序栈的实现方法:int stack[maxSize];int top = -1元素入栈:stack[++top] = 1;stack...原创 2020-04-08 22:25:13 · 1071 阅读 · 14 评论 -
彻底搞懂线性表建表和逆置操作
指针:声明时,A *a表示a是指向A类型的指针,A &a表示a是A类型的引用;调用时,*a表示取a指向的内容,&a表示取a的地址。顺序表建表单链表(带头结点)建表尾插法:(从尾部开始建表)头插法:真题举例:键盘输入n个英文字母,输入格式为n、c1、c2……、cn,其中n表示字母的个数。请编程以这些输入数据建立一个单链表,并要求将字母不重复的存入链表;题目解读...原创 2020-04-03 18:26:17 · 2100 阅读 · 9 评论 -
(三)顺序表的插入和删除操作
上一篇:(二)数据结构线性表相关知识2.5插入和删除2.5.1.1单链表的插入操作如下图:特殊情况:不含头结点的单链表在开始结点之前插入一个结点:被插入结点s的next指针指向原来的开始结点,然后head指针指向s,使得s结点变成了新的开始结点(其他任意位置的插入操作如上图)。而含头结点的单链表(头结点不存线性表中的元素信息,第一个数据元素是头结点后边那个)在其对应的线性表的任何一个...原创 2020-04-01 16:55:08 · 2670 阅读 · 4 评论 -
(二)数据结构线性表相关知识
数据结构二、线性表2.1线性表的逻辑结构线性表是具有相同特性数据元素的有限序列。2.2线性表的存储结构第一个元素没有直接前驱元素,最后一个元素没有直接后继元素,其他元素都有唯一的前驱和后继元素。线性表有顺序存储结构和链式存储结构。2.2.1顺序存储结构是指将线性表中的各个元素依次存放在一组地址连续的存储单元中,通常将这种方法存储的线性表称为顺序表。顺序存储结构的优缺点:优点:无...原创 2020-03-26 17:25:04 · 873 阅读 · 4 评论 -
(一)彻底搞懂数据结构基础知识
for(int i=0; i<N; ++i){…… }的执行顺序:先执行int i=0,然后执行判断语句i<N,然后执行循环体内的语句,最后执行循环变量变化语句++i,这就是循环的第一轮。下一步执行判断语句i<N,然后执行循环体内的语句,最后执行循环变量变化语句++i,然后一直循环这个过程直到判断为假循环停止。...原创 2020-03-24 20:34:52 · 542 阅读 · 4 评论