| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1819 人关注过本帖
标题:[求助] 链表操作:对数据的添加,查询,删除。(每次操作完后显示所有数据 ...
取消只看楼主 加入收藏
huzi00008
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-10-9
收藏
 问题点数:0 回复次数:6 
[求助] 链表操作:对数据的添加,查询,删除。(每次操作完后显示所有数据)有经验
链表操作:对数据的添加,查询,删除。(每次操作完后显示所有数据)有经验的可以简单谈谈

我考虑了一天一夜,还没头绪。目前程序的编写还不太成熟,上不了桌面。呵呵 ̄ ̄ 

最迟明天中午,我将我的呈上...
 
诸位好兄弟,把你们对链表的体会写一下,我感到有点茫然阿。


明天中午见了 
搜索更多相关主题的帖子: 链表 数据 经验 删除 
2006-11-02 17:30
huzi00008
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-10-9
收藏
得分:0 
看看这个,有很多毛病
请多多发表意见
#include<stdio.h>
#define TYPE struct stu
#define LEN sizeof (struct stu)
struct stu
{
int num;
int age;
struct stu *next;
};
creat(int n)
{
struct stu *head,*pf,*pb;
int i;
for(i=0;i<n;i++)
{
pb=(TYPE*) malloc(LEN);
printf("input Number and Age\n");
scanf("%d %d",&pb->num,&pb->age);
if(i==0)
pf=head=pb;
else pf->next=pb;
pb->next=NULL;
pf=pb;
}

pf=head;
for(i=0;i<3;i++)
{
printf("Number=%d\nage=%d\n",pf->num,pf->age);
pf=pf->next;
}
free(head);
}
int main(void)
{
int m=3;
creat(m);
pri();
}
void pri(){
int num;
printf("please select your choice:");
printf("1--------------search\n");
printf("2--------------insert\n");
printf("3--------------delete\n");
scanf("%d",&num);

switch(num)
case 1:
TYPE * search(TYPE *head,int num);
break;
case 2:
TYPE * insert(TYPE * head,TYPE *pi);
break;
case 3:
TYPE * delete(TYPE * head,int num);
break;
return 0;
}
TYPE * search(TYPE *head,int num)
{
TYPE *p;
int i;
p=head;
while(p->num!=num&&p->next!=NULL)
p=p->next;
if(p->num==num) return(p);
if(p->num!=num&&p->next==null)
printf("Node %d has not been found!\n",num);
}
TYPE * delete(TYPE * head,int num)
{
TYPE *pf,*pb;
if(head==NULL)
{printf("\n empty list!\n");
goto end;}
pb=head;
while(pb->num!=num&&pb->next!=null)
{
pf=pb;
pb=pb->next;
}

if(pb->num==num)
{
if(pb==head)
head=pb->next;
else
pf->next=pb->next;
free(pb);
printf("The node is deleted\n");
}
else
printf("The node not been found!\n");
end:
return head;
}
TYPE * insert(TYPE * head,TYPE *pi)
{
TYPE *pf,*pb;
pb=head;
if(head==NULL)
{
head=pi;
pi->next=NULL;}
else
{
while((pi->num>pb->num)&&(pb->next!=NULL))
{
pf=pb;
pb=pb->next;
}
if(pi->num<=pb->num)
{
if(head==pb)
{pi->next=head;
head=pi;
}
else
{
pi->next=pf->next;
pf->next=pi;
}
}
else
{
pb->next=pi;
pi->next=NULL;}
}
return head;}



2006-11-03 09:43
huzi00008
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-10-9
收藏
得分:0 
怎么作呢 ?不甚了解。

2006-11-03 11:13
huzi00008
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-10-9
收藏
得分:0 
你真幽默阿**:::::这辈子不想再看见你黑瞎。

2006-11-03 11:38
huzi00008
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-10-9
收藏
得分:0 
在此谢谢诸位了先。

2006-11-03 13:39
huzi00008
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-10-9
收藏
得分:0 
我觉得都可行。。

2006-11-03 15:34
huzi00008
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-10-9
收藏
得分:0 
阿呀,、、有人给一份完整的代码阿。

2006-11-06 11:32
快速回复:[求助] 链表操作:对数据的添加,查询,删除。(每次操作完后显示所有 ...
数据加载中...
 
   



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

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