| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 770 人关注过本帖
标题:求助,循环链表问题
取消只看楼主 加入收藏
梦想中国
Rank: 2
等 级:新手上路
威 望:5
帖 子:539
专家分:0
注 册:2006-2-26
收藏
 问题点数:0 回复次数:4 
求助,循环链表问题

各位好:下面是个循环单链表不正确的程序,谁能告诉我怎么改成循环链表,最好把代码告诉我,谢谢。
#include<stdio.h>
#include<stdlib.h>
typedef struct CLNode{
int data;
struct CLNode *next;
}CLnode,*CLinkList;

CLinkList CreateList(CLinkList L,int value);
void Output(CLinkList L);

int main(void)
{
CLinkList L=NULL;
int i,n,value;

printf("Please input n: ");
scanf("%d",&n);
for(i=1;i<=n;i++) //n代表结点数量
{
scanf("%d",&value);
L=CreateList(L,value); //创建程序
Output(L); //输出连表
}

return 0;
}

CLinkList CreateList(CLinkList L,int value)
{
CLinkList newPtr,previousPtr,currentPtr;

newPtr=(CLinkList)malloc(sizeof(CLnode));
if(newPtr)
{
newPtr->data=value;
newPtr->next=NULL;

previousPtr=NULL;
currentPtr=L;

while(currentPtr && currentPtr->data < value)
{
previousPtr=currentPtr;
currentPtr=currentPtr->next;

if(currentPtr==NULL) //这是我个人的想法,不对
previousPtr->next=L;
}
if(previousPtr==NULL)
{
newPtr->next=L;
L=newPtr;
}
else
{
previousPtr->next=newPtr;
newPtr->next=currentPtr;
}
}
else
printf("Dynamic malloc memory failure.\n");

return L;
}

void Output(CLinkList L)
{
CLinkList currentPtr;
if(L)
{
currentPtr=L;
while(currentPtr!=L)
{
printf("%d->",currentPtr->data);
currentPtr=currentPtr->next;
}
printf("NULL\n\n");
}
}

搜索更多相关主题的帖子: 链表 CLinkList int void 
2006-03-19 21:10
梦想中国
Rank: 2
等 级:新手上路
威 望:5
帖 子:539
专家分:0
注 册:2006-2-26
收藏
得分:0 
我想直接创建循环链表

2006-03-19 21:30
梦想中国
Rank: 2
等 级:新手上路
威 望:5
帖 子:539
专家分:0
注 册:2006-2-26
收藏
得分:0 

仍然谢谢你


2006-03-19 21:41
梦想中国
Rank: 2
等 级:新手上路
威 望:5
帖 子:539
专家分:0
注 册:2006-2-26
收藏
得分:0 
谢谢,谢谢,非常感谢

2006-03-19 22:28
梦想中国
Rank: 2
等 级:新手上路
威 望:5
帖 子:539
专家分:0
注 册:2006-2-26
收藏
得分:0 
谢谢

2006-03-19 23:08
快速回复:求助,循环链表问题
数据加载中...
 
   



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

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