一个单链表操作,错误好多啊,是不是少了什么头文件?
#include <stdio.h>#define ok 1
#define error 0
#define overflow -2
typedef int status ;
typedef struct lnode { //单链表的存储结构
int data;
struct lnode *next;
}lnode,*linklist ;
status initlist_l(linklist &l){ //构造一个头节点
l=new lnode;
l->next=NULL;
return ok;
}
status getelem_l(linklist l,int i,int &e){//在带头结点的单链表l中查找第i个元素(按序号查找)
int j;
lnode *p;
p=l->next;
j=1;
while(p&&j<i){
p=p->next;
++j;
}
if(!p||j>i)return error;
e=p->data;
return ok ;
}
status listinsert_l(linklist &l,int i,int e){//在带头节点的单链表中第i个位置插入元素e
lnode *p ,*s;
p=l;
int j=0;
while(p&&j<i-1){
p=p->next;
++j;
}
if(!p||j>i-1)return error;
s=new lnode ;
s->data=e;
s->next=p->next;
p->next=s;
return ok;
}
//单链表的删除
status listdetele_l(linklist &l,int i,int &e){
lnode *p ,*q;
p=l;
int j=0;
while(p->next&&j<i-1){
p=p->next;
++j;
}
if(!(p->next)||j>i-1)return error;
q=p->next;
p->next=q->next;
e=q->data ;
delete q;
return ok;
}
//前插法创建单链表
void createlist_f(linklist &l,int n){
lnode *p ;
int i;
l=new lnode;
l->next=0;
for(i=n;i>0;--i){
p=new lnode; scanf("%d",&p->data );
p->next=l->next;
l->next=p;
}
}
void main(){
linklist l;
lnode *p;
int e;
int k,h;
//h=initlist_l(l);
createlist_f(l, 9);
p=l->next;
while(p) {
printf("%d ",p->data);
p=p->next;
}
printf("\n");
listinsert_l( l, 4, 999);
p=l->next;
while(p){
printf("%d ",p->data);
p=p->next;
}
printf("\n");
listdetele_l(l, 7, e);
p=l->next;
while(p){
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
D:\ffaf\ffaf.c(12) : error C2143: syntax error : missing ')' before '&'
D:\ffaf\ffaf.c(12) : error C2143: syntax error : missing '{' before '&'
D:\ffaf\ffaf.c(12) : error C2059: syntax error : '&'
D:\ffaf\ffaf.c(12) : error C2059: syntax error : ')'
D:\ffaf\ffaf.c(18) : error C2143: syntax error : missing ')' before '&'
D:\ffaf\ffaf.c(18) : error C2143: syntax error : missing '{' before '&'
D:\ffaf\ffaf.c(18) : error C2059: syntax error : '&'
D:\ffaf\ffaf.c(18) : error C2059: syntax error : ')'
D:\ffaf\ffaf.c(32) : error C2143: syntax error : missing ')' before '&'
D:\ffaf\ffaf.c(32) : error C2143: syntax error : missing '{' before '&'
D:\ffaf\ffaf.c(32) : error C2059: syntax error : '&'
D:\ffaf\ffaf.c(32) : error C2059: syntax error : ')'
D:\ffaf\ffaf.c(49) : error C2143: syntax error : missing ')' before '&'
D:\ffaf\ffaf.c(49) : error C2143: syntax error : missing '{' before '&'
D:\ffaf\ffaf.c(49) : error C2059: syntax error : '&'
D:\ffaf\ffaf.c(49) : error C2059: syntax error : ')'
D:\ffaf\ffaf.c(66) : error C2143: syntax error : missing ')' before '&'
D:\ffaf\ffaf.c(66) : error C2143: syntax error : missing '{' before '&'
D:\ffaf\ffaf.c(66) : error C2059: syntax error : '&'
D:\ffaf\ffaf.c(66) : error C2059: syntax error : ')'
D:\ffaf\ffaf.c(84) : warning C4013: 'createlist_f' undefined; assuming extern returning int
D:\ffaf\ffaf.c(92) : warning C4013: 'listinsert_l' undefined; assuming extern returning int
D:\ffaf\ffaf.c(99) : warning C4013: 'listdetele_l' undefined; assuming extern returning int
Error executing cl.exe.
ffaf.obj - 20 error(s), 3 warning(s)