读书人

急新手有关问题多谢大家了

发布时间: 2012-02-10 21:27:41 作者: rapoo

急!!新手问题,谢谢大家了
设线性表A=(a1,a2,a3,…,an)以带头结点的单链表作为存储结构。
编写一个函数,对A进行调整,使得
当n为奇数时A=(a2,a4,…,an-1,a1,a3,…,an),
当n为偶数时A=(a2,a4,…,an,a1,a3,…,an-1)。

只要帮我讲讲算法的思想就好了,谢谢大家了,非常感谢

[解决办法]
首先定义两个头指针po,pe分别指向a1,a2。
然后再定义两个指针p1,p2用来遍历链表。
p1,p2初始化为指向a1,a2,然后遍历;
1)p1所指的结点指向p2所指的结点的下一个结点,即a1指向a3,然后把p1也指向a3。
2)p2所指的结点指向p1所指的结点的下一个结点,即a2指向a4,然后把p2也指向a4。
同样,再次执行1),即a3和p1都指向a5。
同样,再次执行2),即a4和p2都指向a6.
如引遍历。。。
最后,将p2赋值成po.
完成
[解决办法]
就定义一个头指针p0另一个指针指向第二个pe
循环p1遍历
{
每个指针都指向下个元素的下个元素
}
不用判断奇数
然后pe指到最后一元素,链接到P0

[解决办法]
n为奇数时,头尾连起来,从a2开始隔一个取一个即可
n为偶数时,前面加一个a0,然后也是连起来,取数同上

读书人网 >软件架构设计

热点推荐