| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 634 人关注过本帖
标题:线性链表插入删除的问题
只看楼主 加入收藏
有人走
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-5-14
收藏
 问题点数:0 回复次数:0 
线性链表插入删除的问题

# include <stdio.h>
# include <malloc.h>
# define NULL 0
# define LEN sizeof(struct student)

struct student
{
long num;
float score;
struct student * next;
};
int n;

struct studnt * creat(void)
{
struct student * head;
struct student *p1,*p2;
n=0;
p1=p2=( struct student *) malloc(LEN);
scanf("%ld,%f", &p1->num,&p1->score);
head=NULL;
while (p1->num!=0)
{ n=n+1;
if (n==1) head=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%ld,%f", &p1->num,&p1->score);
}
p2->next=NULL;
return(head);
}

void print(struct student *head)
{struct student *p;
printf ("\n Now,These %d record are ; \n",n);
p=head;
if (head!=NULL)
do {printf ("%ld %5.1f\n",p->num,p->score);
p=p->next;
}
while (p!=NULL);
}

struct student *del(struct student *head ,long num)
{struct student *p1, *p2;
if(head==NULL) {printf("\n list null!");goto end ; }
p1=head;
while (num!=p1->num && p1->next!= =NULL)
{p2=p1;p1=p1->next;}
if
(num==p1->num)
else p2->next=p1->next;
printf ("delete :%ld\n",num);
n=n-1;
}
else printf ("%ld not been found! \n",num);
end;
return (head);
}


struct student * insert(struct student * head, struct student * stud)
{struct student * p0,* p1,p2;
p1= head;
p0= stud;
if(head==NULL)
{head=p0; p0->next=NULL;}
else
{while((p0->num->p1->num) && (p1->next!=NULL))
{p2=p1;
p1=p1->next;}
if(p0->num<=p1->num)
{if(head==p1) head=p0;
else p2->next=p0;
p0->next=p1;}
else
{p1->next=p0;p0->next=next=NULL;}
}
n=n+1;
return(head);
}


void main()
{
struct student * head,stu;
long del_num;
printf("input records:\n");
head=creat();
print(head);
printf("\ninput the deleted number:");
scanf("%ld",&del_num);
head=del(head,del_num);
print(head);
printf("\ninput the inserted record:");
scanf("%ld,%f",&stu,num,&stu.score);
head=insert(head,&stu);
printf(head);
}
用visual c++编译出现以下下的提示

.c(33) : warning C4133: 'return' : incompatible types - from 'struct student *' to 'struct studnt *'
.c(51) : error C2059: syntax error : '='
.c(53) : error C2059: syntax error : 'if'
.c(56) : error C2143: syntax error : missing ')' before 'string'
.c(56) : error C2143: syntax error : missing '{' before 'string'
.c(56) : error C2059: syntax error : '<Unknown>'
.c(56) : error C2059: syntax error : ')'
.c(57) : error C2099: initializer is not a constant
.c(58) : error C2059: syntax error : '}'
.c(61) : error C2059: syntax error : 'return'
.c(62) : error C2059: syntax error : '}'
.c(92) : warning C4133: '=' : incompatible types - from 'struct studnt *' to 'struct student *'
.c(100) : warning C4013: 'insert' undefined; assuming extern returning int
.c(100) : warning C4047: '=' : 'struct student *' differs in levels of indirection from 'int '
.c(101) : warning C4133: 'function' : incompatible types - from 'struct student *' to 'const char *'

搜索更多相关主题的帖子: 链表 线性 删除 
2007-05-14 12:40
快速回复:线性链表插入删除的问题
数据加载中...
 
   



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

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