将一个单向链表拆分成两个链表,其中分别包括原表中的奇数和偶数个结点,并保持原相对序列不变 20

作业提交时除代码文件外需附带文本文件,用于说明:(1)所选题目涉及到的逻辑结构;(2)程序中使用的存储结构;(3)问题的解决方案,算法说明;(4)对代码的评价,优缺点分析... 作业提交时除代码文件外需附带文本文件,用于说明:
(1)所选题目涉及到的逻辑结构;
(2)程序中使用的存储结构;
(3)问题的解决方案,算法说明;
(4)对代码的评价,优缺点分析,改进方向分析等;
展开
 我来答
宛丘再来
2015-06-18 · TA获得超过1017个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:119万
展开全部

(1)逻辑结构:

     L={D,R}   D={a1,a2,……,an}    R={<ai, a(i+1)>|i=1,2,……,n-1}

     L1=={D1,R1}   D1={a1,a3,…,a(2m±1)}    R1={<ai, a(i+2)>|i=1,3,…,2(m-1)±1}

     L2=={D2,R2}   D2={a2,a4,…,a(2m)}    R1={<ai, a(i+2)>|i=1,3,…,2m-2}

(2)存储结构:

(3)算法:

    a)初始化L1、L2

    b)p1=L1,   q1=L2,   p=L->next,  q=p->next

    c) 循环:p1->next=p  p1=p  q1-next=q   q1=q

                 若p->next=NULL 则 p1->next=NULL p=NULL

                 否则 p=p->next->next

                 若q->next=NULL 则 q1->next=NULL  q=NULL

                 否则 q=q->next->next

           当p,q同时为空时循环结束

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式