1.已知一个顺序表L,其中的元素按值非递减有序排列,设计一个算法插入一个元素x后保持该顺序表仍按非递减有序排列。 2.设计一个算法从顺序表L中删除所有值为x的元素。
3.已知线性表元素递增有序,并以带头结点的单链表作存储结构,设计一个高效算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素)。并分析所写算法的时间复杂度。
4.设计一个在带头结点的单链表中删除一个最小值结点的高效算法。 5.有一个不带头结点的单链表L(至少有一个结点),其头指针为head。设计一个算法将L逆置,即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,如此等等。
6.假设二叉树采用链式存储方式存储,编写一个二叉树前序遍历的非递归算法。 7.假设二叉树采用链式存储方式存储,编写一个二叉树后序遍历的非递归算法。 8.假设二叉树采用链式存储方式存储,编写一个二叉树中序遍历的非递归算法。
9.编写一个c++函数。实现线性表就地逆置。即在原表的存储空间内将线性表(a1,a2,…,an)逆置为(an,…,a2,a1)。 10.编写一个单链表倒链程序,即将单链表中每个结点的前驱与后继关系颠倒。
11.在数组a[0?n-1]中存放有n个不同的整数,请编写一个函数,将a中的n个数按从小到大的顺序排列。 12.有一个不带头结点的单链表L(至少有一个结点),其头指针为head。设计一个算法将
26