试分别以顺序表和单链表作存储结构,各写一个实现线性表的自身(即使用尽可能少的附加空间)逆置的算法,在原表的存储空间内将线性表(a1,a2,…an)逆置为(an,…a2,a1)。

admin2014-12-25  30

问题 试分别以顺序表和单链表作存储结构,各写一个实现线性表的自身(即使用尽可能少的附加空间)逆置的算法,在原表的存储空间内将线性表(a1,a2,…an)逆置为(an,…a2,a1)。

选项

答案(1)顺序表作存储结构。 扫描顺序表A的前半部分元素,对于元A.data[i](o<=i<=L.1ength/2),将其与后半部分对应元素A.data[A.1ength—i一1]进行交换。实现本题功能的函数如下: void invert1(SqList&A) { int i; int temp; for(i=0;inext; /*取原表表头结点*/ A一>next=NULL; /*设A为逆置表表头*/ while(p!=NuLL) { u=p;p=p一>next; /*p后移*/ u一>next=A一>neXtj /*插入到头结点之后*/ A一>next=u: } }

解析
转载请注明原文地址:https://kaotiyun.com/show/fiVx777K
0

最新回复(0)