首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-02-10 
急!!新手问题,谢谢大家了设线性表A(a1,a2,a3,…,an)以带头结点的单链表作为存储结构。编写一个函数,对A进行

急!!新手问题,谢谢大家了
设线性表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,然后也是连起来,取数同上

热点排行