
数据结构
文章平均质量分 73
二木成林
这个作者很懒,什么都没留下…
展开
-
依次读入数据元素序列{a, b, c, d, e, f, g} 进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下那些序列
数据结构有一道题是这样的:依次读入数据元素序列{a, b, c, d, e, f, g} 进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下那些序列?其次这题中 B 和 C 都是不合法序列,而 A 和 D 都是合法序列,所以疑惑的点应该在于为什么选择 A。弹出后,此时就已经栈空,弹出的元素构成的序列也就是 A 选项,并且入栈的所有元素都在出栈序列中;弹出后也是栈空状态,属于第一次栈空,但此时已经弹出栈的元素序列是。而 A 和 D 都是合法序列,但题目要求的是。原创 2024-07-12 15:36:55 · 475 阅读 · 0 评论 -
串练习之Example008-构造串的链表结点数据结构(每个结点内存储一个字符),编写一个函数,找出串 `str1` 中第一个不在串 `str2` 中出现的字符
构造串的链表结点数据结构(每个结点内存储一个字符),编写一个函数,找出串 `str1` 中第一个不在串 `str2` 中出现的字符。原创 2022-05-16 09:07:25 · 1509 阅读 · 0 评论 -
串练习之Example007-编写一个函数,计算一个子串在一个主串中出现的次数并且不考虑子串重叠
编写一个函数,计算一个子串在一个主串中出现的次数,如果该子串不出现,则返回 0。本题不需要考虑子串重叠,如:主串为 `aaaa`,子串为 `aaa`,考虑子串重叠结果为 2,不考虑子串重叠结果为 1。原创 2022-05-16 09:07:19 · 1404 阅读 · 0 评论 -
串练习之Example006-编写一个函数,将串 `str1` 中的下标 i 到下标 j 之间的字符(包括 i 和 j 两个位置上的字符)用串 `str2` 替换
采用顺序存储方式存储串,编写一个函数,将串 `str1` 中的下标 i 到下标 j 之间的字符(包括 i 和 j 两个位置上的字符)用串 `str2` 替换。原创 2022-05-16 09:07:09 · 590 阅读 · 0 评论 -
串练习之Example005-采用定长顺序存储表示串,编写一个函数,删除串中从下标为 i 的字符开始的 j 个字符
采用定长顺序存储表示串,编写一个函数,删除串中从下标为 i 的字符开始的 j 个字符,如果下标为 i 的字符后没有足够的 j 个字符,则有几个删除几个。原创 2022-05-16 09:07:03 · 611 阅读 · 0 评论 -
串练习之Example004-从串 str 中的 pos 位置起,求出与 substr 串匹配的子串的位置
从串 str 中的 pos 位置起,求出与 substr 串匹配的子串的位置,如果 str 为空串,或者串中不含与 substr 匹配的子串,则返回 -1 做标记。原创 2022-05-16 09:06:56 · 515 阅读 · 0 评论 -
串练习之Example003-删除 str 中值为 `ch` 的所有字符
删除 str 中值为 `ch` 的所有字符,如果 str 为空串,或者串中不含值为 `ch` 的字符,则什么都不做。原创 2022-05-16 09:06:49 · 1166 阅读 · 0 评论 -
串练习之Example002-实现串 str 的逆转函数,如果 str 为空串,则什么都不做
实现串 str 的逆转函数,如果 str 为空串,则什么都不做。原创 2022-05-16 09:06:39 · 193 阅读 · 0 评论 -
串练习之Example001-将串 str 中所有值为 `ch1` 的字符转换成 `ch2` 字符
将串 str 中所有值为 `ch1` 的字符转换成 `ch2` 字符,如果 str 为空串,或者串中不含值为 ch1 的字符,则什么都不做。原创 2022-05-15 21:21:18 · 1439 阅读 · 1 评论 -
串文档之KMP
字符串的 KMP 算法原创 2022-05-15 21:15:08 · 557 阅读 · 0 评论 -
串文档之串
串是字符串的简称,是计算机中常见且非常重要的一种数据结构。串本质上是由零个或多个字符组成的有限序列。原创 2022-05-15 21:05:06 · 592 阅读 · 0 评论 -
队列练习之Example006-设计队列要求入队时增加队列空间,出队后出队元素所占用空间可重复使用,以保持队列空间只增不减,并且要求入队操作和出队操作的时间复杂度都为O(1)
请设计一个队列,要求满足:- ①初始时队列为空;- ②入队时,允许增加队列占用空间;- ③出队后,出队元素所占用的空间可重复使用,即整个队列所占用的空间只增不减;- ④入队操作和出队操作的时间复杂度始终保持为O(1)。原创 2022-05-10 20:26:40 · 2465 阅读 · 0 评论 -
队列练习之Example005-Q 是一个队列,S 是一个空栈,实现将队列中的元素逆置的算法
Q 是一个队列,S 是一个空栈,实现将队列中的元素逆置的算法。原创 2022-05-09 23:03:28 · 5415 阅读 · 6 评论 -
队列练习之Example004-设计一个循环队列,用 front 和 rear 分别作为队头和队尾指针,另外用一个标志 tag 表示队列是空还是不空
设计一个循环队列,用 front 和 rear 分别作为队头和队尾指针,另外用一个标志 tag 表示队列是空还是不空,约定当 tag 为 0 时队空,当 tag 为 1 时队不空,这样就可以用 `front==rear` 作为队满的条件。要求,设计队列的结构和相关基本运算算法(队列元素为 int 型)。原创 2022-05-09 23:01:06 · 5158 阅读 · 0 评论 -
队列练习之Example003-如果允许在循环队列的两端都可以进行插入和删除操作,分别写出从队尾删除和从队头插入的算法
如果允许在循环队列的两端都可以进行插入和删除操作,要求:- 写出循环队列的类型定义。- 分别写出从队尾删除和从队头插入的算法。原创 2022-05-09 22:58:11 · 4116 阅读 · 0 评论 -
队列练习之Example002-用带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,实现对应的入队列和出队列的算法
假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针,请写出相应的入队列和出队列的算法。原创 2022-05-09 22:55:34 · 6609 阅读 · 4 评论 -
队列练习之Example001-用两个栈 s1 和 s2 来模拟一个队列,实现队列的出队、入队、队是否为空的运算
如何利用栈的运算来实现该队列的 3 个运算:`enQueue`(元素入队列)、`deQueue`(元素出队列)、`isQueueEmpty`(判断队列是否为空,空返回 1,不空返回 0)。原创 2022-05-09 22:52:46 · 2951 阅读 · 0 评论 -
队列文档之双端队列
双端队列是普通队列的扩展,是指允许两端都可以进行入队和出队操作的队列(即可以在队头进行入队和出队操作,也可以在队尾进行入队和出队操作的队列)。原创 2022-05-09 22:45:49 · 11421 阅读 · 2 评论 -
队列文档之链队
采用链式存储的队列称为链队。链队是一个同时带有队头指针和队尾指针的单链表。其中队头指针始终指向队头结点,队尾指针始终指向队尾结点(即单链表的最后一个结点)。原创 2022-05-09 22:39:43 · 3852 阅读 · 4 评论 -
队列文档之循环队列
循环队列就是将顺序队列臆造成一个环状的空间(实际上不是,只是把它看成是环状的),即把存储队列元素的顺序表从逻辑上视为一个环。原创 2022-05-09 22:33:18 · 8608 阅读 · 3 评论 -
队列文档之顺序队列
队列的顺序实现指分配一块连续的存储单元存放队列中的元素,并附设两个指针:队头指针和队尾指针。原创 2022-05-09 22:27:24 · 2847 阅读 · 1 评论 -
队列文档之队列
队列(Queue)简称队,是一种操作受限的线性表,只允许在表的一端进行插入,在表的另一端进行删除。原创 2022-05-09 22:21:51 · 673 阅读 · 0 评论 -
栈练习之Example007-利用栈判定单链表是否中心对称
设单链表的表头指针为 L,结点结构由 data 和 next 两个域构成,其中 data 域为字符型。试设计算法判定该链表的全部 n 个字符是否中心对称。例如 `xyx`、`xyyx` 都是中心对称。原创 2022-04-23 00:31:24 · 1611 阅读 · 0 评论 -
栈练习之Example006-判定给定的由 I 和 O 组成的入栈和出栈组成的操作序列是否合法
假设以 I 和 O 分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅有 I 和 O 组成的序列,可以操作的序列为合法序列,否则称为非法序列。如 `IOIIOIOO`、`IIIOOIOO` 是合法的;而 `IOOIOIIO`、`IIIOIOIO` 不合法。写出一个算法,判定给定的操作序列是否合法。若合法则返回 1,否则返回 0(假定被判定的操作序列已存入一维数组 char 型数组 `ch[]` 中,操作序列以 "\0" 为结束符)。原创 2022-04-23 00:29:31 · 6143 阅读 · 0 评论 -
栈练习之Example005-检查一个程序中的花括号、方括号和圆括号是否配对
试编写一个算法,检查一个程序中的花括号、方括号和圆括号是否配对,若全部配对,则返回1,否则返回0。对于程序中出现的一对单引号或双引号内的字符不进行括号配对检查。39为单引号的ASCII 值,34为双引号的ASCII值,单引号和双引号如果出现则必成对出现。原创 2022-04-23 00:27:52 · 3558 阅读 · 0 评论 -
栈练习之Example004-顺序栈 s0 和 s1 共享一个存储区 elem,设计共享栈关于入栈和出栈操作的算法
为了充分利用空间,顺序栈 s0 和 s1 共享一个存储区 `elem[0, ..., maxSize-1`。试设计共享栈 s0 和 s1 以及有关入栈和出栈操作的算法,假设栈中元素为 int 类型。原创 2022-04-23 00:24:50 · 384 阅读 · 0 评论 -
栈练习之Example003-用不带头结点的单链表存储链栈并实现栈相关算法
用不带头结点的单链表存储链栈,设计初始化栈、判断栈是否为空、进栈和出栈等相应的算法。原创 2022-04-23 00:23:18 · 1650 阅读 · 2 评论 -
栈练习之Example002-求后缀式的数值
编写一个函数,求后缀式的数值,其中后缀式存于一个字符数组 exp 中,exp 中最后一个字符为 `"\0"`,作为结束符,并且假设后缀式中的数字都只有一位。本题中所出现的除法运算,皆为整除运算,如 `2/3` 结果为 0,`3/2` 结果为 1。原创 2022-04-23 00:20:54 · 1495 阅读 · 0 评论 -
栈练习之Example001-判断一个算术表达式中的括号是否正确配对
C 语言中算术表达式中的括号只有小括号。编写算法,判断一个表达式中的括号是否正确配对,表达式已经存入字符数组 `exp[]` 中,表达式的字符个数为 `n`。原创 2022-04-23 00:16:27 · 8723 阅读 · 0 评论 -
栈技巧之Note001-前缀和中缀及后缀表达式
前缀、中缀和后缀表达式是对表达式的不同记法,其区别在于运算符相对于操作数的位置不同,其中前缀表达式的运算符位于操作数的前面,后缀表达式的运算符位于操作数的后面。原创 2022-04-22 23:50:58 · 898 阅读 · 0 评论 -
栈文档之共享栈
共享栈是顺序栈的变种。利用栈底位置相对不变的特性,可以让两个顺序栈共享一个一维数组空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间的中间延申。原创 2022-04-22 23:43:58 · 7453 阅读 · 0 评论 -
栈文档之链栈
采用链式存储的栈称为链栈。链栈的优点是便于多个栈共享存储空间和提高效率,且不存在栈满上溢的清空。通常采用单链表实现,并且规定所有操作都是在单链表的表头进行上的(因为头结点的 `next` 指针指向栈的栈顶结点)。原创 2022-04-22 23:39:20 · 8334 阅读 · 6 评论 -
栈文档之顺序栈
采用顺序存储的栈称为顺序栈,它采用一组地址连续的存储单元存放自栈底到栈顶的数据元素,同时设定一个指针(top)指向当前栈顶元素的位置。通常采用数组来实现。原创 2022-04-22 23:35:42 · 4613 阅读 · 0 评论 -
栈文档之栈
栈(Stack)是只允许在一端进行插入或删除操作的线性表(与队列相比而言,队列是允许在两端进行插入或删除操作的)。原创 2022-04-22 23:24:18 · 529 阅读 · 0 评论 -
线性表技巧之Note005-删除链表节点
线性表技巧之Note005-删除链表节点原创 2022-04-06 20:10:51 · 1803 阅读 · 0 评论 -
线性表技巧之Note004-逆置单链表
线性表技巧之Note004-逆置单链表原创 2022-04-06 20:10:41 · 861 阅读 · 0 评论 -
线性表技巧之Note003-寻找链表的中间节点
线性表技巧之Note003-寻找链表的中间节点原创 2022-04-05 22:27:59 · 2635 阅读 · 0 评论 -
线性表技巧之Note002-寻找第 k 个节点
线性表技巧之Note002-寻找第 k 个节点原创 2022-04-05 22:25:38 · 454 阅读 · 0 评论 -
线性表技巧之Note001-链表的最后一个节点
线性表技巧之Note001-链表的最后一个节点原创 2022-04-05 22:24:15 · 5085 阅读 · 0 评论 -
线性表文档之静态链表
线性表文档之静态链表原创 2022-04-05 22:20:20 · 1217 阅读 · 0 评论