LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 836|回复: 1

[求助]用结构体链表实现增删改查

[复制链接]
发表于 2005-6-6 22:13:02 | 显示全部楼层 |阅读模式
我想用结构体链表对结点实现实现增加,删除,修改,查找。请高手帮助。
我已经写了一个删除的,但是好像不对。请高手帮助
#include<stdio.h>

int main(void)
{
struct class
{
int num;
char name[20];
struct class *next;
}std[3],*head,*p,*q;

int i;
char a[20];
for(i=0;i<3;i++)
{
printf("please input num:");
scanf("%d",&std.num);
printf("please input name:");
scanf("%s",std.name);
if(i!=2)
std.next=&std[i+1];
else
std.next=NULL;
}
head=&std[0];
p=&std[0];
q=&std[0];

printf("please input delete of name:");
scanf("%s",a);
while(a!=p->num && p->next!=NULL)
{
q=p;
p=p->next;
if(a==p->num)
{
if(p=head)
head=p->next;
else
q->next=p->next;
}
}

while(p!=NULL)
{
printf("num=%d name=%s\n",p->num,p->name);
p=p->next;
}


return 0;
}
发表于 2005-6-6 23:01:15 | 显示全部楼层
??printf("please input delete of name:");
??scanf("%s",a);
??while(a!=p->num && p->next!=NULL)
你输入的是name,却和num比较,怎么会对?
还有,删除的动作最好用一个函数实现,main只是一个驱动,独立的概念独立表示,删除是一个独立的功能,一般独立的实现。
还有, 将struct class的定义放在函数的外面。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表