| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 408 人关注过本帖
标题:[讨论]还是关于链表的问题
取消只看楼主 加入收藏
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
结帖率:100%
收藏
 问题点数:0 回复次数:2 
[讨论]还是关于链表的问题

程序如下:
# include<stdio.h>
# include<malloc.h>
# include<stdlib.h>
struct list
{
int data;
struct list *next;
};
void print(struct list *head);
void insert(struct list *head);


void print(struct list *head)//打印链表
{
struct list *p;
p=head;
while(p)
{
printf("%3d",p->data);
p=p->next;
}
}
void insert(struct list *head)//插入链表
{
struct list *pnew,*p;
int m;
char f,f1;
p=head;
aa:printf("Enter the number of you want:\n");
scanf("%d",&m);
pnew=(struct list*)malloc(sizeof(struct list));
if (pnew==NULL)
{
printf("NO MEMORY!\n");
return ;
}
pnew->data=m;
pnew->next=NULL;

for (p=head;p!=NULL;p=p->next)
if (p->next==NULL||p->next->data>pnew->data)
{
pnew->next=p->next;
p->next=pnew;
break;
}

while (1)
{
printf("是否继续操作(y/n):");
f=getchar();
if((f=='y')||(f=='Y')||(f=='N')||(f=='n'))
{
if((f=='y')||(f=='Y'))
{
printf("操作继续.\n");
goto aa;
}

else
{
printf("操作结束。\n");
break;
}

}
else
{
printf("输入错误。\n");
}
}
while (1)
{
printf("是否继续打印操作(y/n):");
f1=getchar();
if((f1=='y')||(f1=='Y')||(f1=='N')||(f1=='n'))
{
if((f1=='y')||(f1=='Y'))
{
printf("操作继续.\n");
print(head->next);
}

else
{
printf("操作结束。\n");
break;
}

}
else
{
printf("输入错误。\n");
}
}

}

void main()
{
struct list *head,*p,*rear;
int x,n,t=1;
printf("*********主菜单*********\n");
printf("*********1.插入链表*******\n");
printf("*********2.打印链表*******\n");

head=(struct list*)malloc(sizeof(struct list));
if (head==NULL)
{
printf("NO MEMORY!\n");
exit(-1);
}
head->next=NULL;
rear=head;
printf("Please input the date:\n");
while(t)
{
scanf("%d",&x);
p=(struct list*)malloc(sizeof(struct list));
if (p==NULL)
{
printf("NO MEMORY!\n");
exit(-1);
}
p->data=x;
p->next=NULL;
rear->next=p;
rear=p;
}

printf("请输入需要操作的序号:\n");
scanf("%d",&n);
switch(n)
{
case 1:void insert(struct list *head);break;
case 2:void print(struct list *head);
default:printf("输入错误!\n");break;
}
}

首先程序会提示:
*********主菜单***********
*********1.插入链表*******
*********2.打印链表*******
Please input the date:
然后我输入:1 2 3 4 5 6时
程序应该提示
请输入需要操作的序号:
可是我这个到这就没有了.我想请问这是为什么呀?
我对链表一直不懂!

搜索更多相关主题的帖子: 链表 
2007-03-30 20:14
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

这个代码应该不对,所以拜托你们了。


~~我的明天我知道~~
2007-03-31 00:54
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
这个fflush(stdin),我的老师没有给讲过,自然就不知道怎么用了。
这个函数到底怎么用,什么时候用,需要注意哪些问题。
拜托各位在费费神。
呵呵呵。。。。。
辛苦你们了!

~~我的明天我知道~~
2007-03-31 09:29
快速回复:[讨论]还是关于链表的问题
数据加载中...
 
   



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

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