数据结构与算法

第三章 线性结构 习题分享1

2021-08-15  本文已影响0人  你的鱼干
  1. 判断正误。
    • 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。
    • 若一个栈的输入序列为1,2,3,...N,输出序列的第一个元素是i,则第j个输出元素一定是j-i-1
    • 在用数组表示的循环队列中,front值一定小于等于rear值。
  2. 填空题
    • 数组A[1..5,1..6]每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为________。
    • 带头节点的单链表L为空的判定条件是________。
    • 通过对堆栈S操作:Push(S,1),Push(S,2),Pop(S),Push(S,3),Pop(S),Pop(S)。输出的序列为________。
    • 如果循环队列用大小为m的数组表示,且用队头指针front和队列元素个数size代替一般循环队列中的frontrear指针来表示队列的范围,那么这样的循环队列可以容纳的元素个数最多为________。
  3. 给定一个顺序存储的线性表L=(a_1,a_2,···,a_n),请设计一个算法删除所有值大于等于min而且小于max的元素。
  4. 给定一个顺序存储的线性表L=(a_1,a_2,···,a_n),请设计一个算法查找该线性表中最长递增子序列,例如,(1,9,2,5,7,3,4,6,8,0)中最长递增子序列为(3,4,6,8)。
  5. 请设计时间和空间上都尽可能高效的算法,求链式存储的线性表的倒数第m个元素。
  6. 请设计实现两个链式存储的一元多项式乘法运算的算法,并分析该算法的时间复杂度。
  7. 如果有1、2、3、4、5按顺序入栈,不同的堆栈操作(pop,push)顺序可以得到不同的输出序列。请问一共有多少种不同的输出序列?为什么?
上一篇 下一篇

猜你喜欢

热点阅读