.设计一个算法用于将存储在顺序表LA中所有值在[a,b](a<b)范围内的元素保留下来,其余的均删除!要求算法的时间复杂度为O(n); 4.一个栈的输入序列是XYZ,若在入栈的过程中允许出栈,请列出栈的所有可能输出序列。
时间: 2024-03-29 15:35:46 浏览: 75
设计算法实现删除顺序表中多余重复元素.txt
1. 设计一个算法用于将存储在顺序表LA中所有值在[a,b](a<b)范围内的元素保留下来,其余的均删除。要求算法的时间复杂度为O(n)。
算法步骤如下:
1. 定义两个指针i和j,初始值均为0。
2. 从左向右扫描顺序表,若当前元素的值在[a,b]范围内,则将其复制到位置i处,i自增1。
3. 若当前元素的值不在[a,b]范围内,则j自增1,继续扫描。
4. 当扫描结束时,将顺序表的长度设为i,即可实现删除不在[a,b]范围内的元素。
时间复杂度:O(n),其中n为顺序表的长度。
2. 一个栈的输入序列是XYZ,若在入栈的过程中允许出栈,请列出栈的所有可能输出序列。
栈的所有可能输出序列为:XYZ, XZY, YXZ, YZX, ZXY, ZYX。
阅读全文