#include <iostream>
#include <cstdio>
using namespace std;
typedef int ElemType;
typedef int Status;
const int n=5;
struct Node{
ElemType data;
struct Node *next;
}Node,*LinkList;
void print_title();
void CreateList(LinkList &L,int n);
Status ListDelete_first(LinkList &L);
Status ListTraverse(LinkList &L);
int main(){
int x;
ElemType e;
LinkList L;
CreateList(L,n);
print_title();
scanf("%d",&x);
switch(x){
case 1:ListDelete_first(L);break;
case 2:ListTraverse(L);break;
default:;
}
return 0;
}
void print_title(){
cout<<"Delete a number in the first,input 1;"<<endl;
cout<<"See all numbers,input 2;"<<endl;
cout<<"Quit,input any other characters."<<endl;
}
void CreateList(LinkList &L,int n){
LinkList p;
L=(LinkList)malloc(sizeof(Node));
L->next=NULL;
for(i=n;i>0;--i){
p=(LinkList)malloc(sizeof(Node));
cin>>p->data;
p->next=L->next;
L->next=p;
}
}
Status ListDelete_first(LinkList &L){
LinkList p;
p=L->next;
if(!p)return false;
p=p->next;
L->next=L->next->next;
free(p);
p=NULL;
return true;
}
Status ListTraverse(LinkList &L){
LinkList p;
p=L->next;
if(!p){
cout<<"empty list!"<<endl;
return false;
}
while(p->next){
p=p->next;
cout<<p->data<<"\t";
}
cout<<endl;
return true;
}
//error: variable or field 'CreateList' declared void|
//error: 'L' was not declared in this scope|
//error: expected primary-expression before 'int'|
3 回答
已采纳
朕日理万机
TA贡献27条经验 获得超28个赞
别的,部分没看,你目前的问题,LinkList(第10行),不是一个类型名,而是一个变量名,是一个指针类型指向了一个Node实例。而你在后面的代码中把它当成了一个类型名用。
SupperMary
TA贡献5条经验 获得超0个赞
编译报错在12行,手动去掉"LinkList &L"之后。
报错信息“error: variable or field 'CreateList' declared void|”没有了,应该是链表格式没写对(我还没有学过链表,不知道具体情况)
报错信息“error: 'L' was not declared in this scope|”也没有了
把“void CreateList(LinkList &L,int n);”改成“void CreateList(int n,LinkList &L);”之后,报错信息”error: expected primary-expression before 'int'|“也没有了,说明问题还是出在“LinkList &L”上,很有可能是函数格式不对。
- 3 回答
- 0 关注
- 2404 浏览
添加回答
举报
0/150
提交
取消