标题:一道简单的指针题
取消只看楼主
yuchujin
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-25
 问题点数:0 回复次数:1 
一道简单的指针题

假设有一带头结点的链表,表头指针为HEAD,每个结点含三个域:DATA,NEXT和PRIOR。其中DATA为整型,NEXT和PRIOR均为指针域。现在所有点已经由NEXT域连接起来,试编写一算法,利用PRIOR域(初值为NULL)把所有结点按其DATA里的值从小到大(升序)的顺序链接起来。


typedef struct
{ int data;
struct *next;
struct *prior;
}LINK;

#define null 0
void link_asc (LINK *head)
{ if (head==null || head->next==null) printf("the link needn't cending!\n");
else{ LINK *Psave=head,*p1,*nowP; int f,x;

for (p1=head->next,f=0;;)
{ while (p1->next!=null)
{if (p1->prior==null) { x=p1->data;f=1;break;}
else p1=p1->next;}

if(f==0 && p1->prior==null ) {Psave->prior=p1;return;}
if(f==0) {Psave=null;return;}

p1=head->next;
while (p1->next!=null)
{ if (p1->prior==null) if(x>=p1->data) {x=p1->data;nowP=p1;}
p1=p1->next;}
if(p1->prior==null) if(x>=p1->data){x=p1->data;nowP=p1;}
Psave->prior=nowP;Psave=nowP;Psave->prior=Psave->next;}}}

搜索更多相关主题的帖子: 指针 LINK head DATA 结点 
2006-11-05 17:06
yuchujin
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-25
得分:0 
自己写的 没调试过 大家帮忙看下


........晕 这个BBS不能贴图.......... G-G-G-G-G-G-G-UNIT
2006-11-05 17:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-100896-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032344 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved