#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -1
typedef int Status;
typedef int ElemType;
typedef char ZF;
struct LNode
{
ZF name[20];//名字
ElemType num;//学号
ElemType data;//成绩
struct LNode *next;//指针域
};
typedef struct LNode LNode;
typedef struct LNode* LinkList;
//初始化
Status InitList(LinkList &L)
{
L=new LNode;
L->next=NULL;
return OK;
}
//插入
Status ListInsert(LinkList &L,int i,ElemType xh,ZF xm[20],ElemType cj)// 学号 姓名 成绩
{
if(i<1) return ERROR;
LNode *p=L;
int j=0;
while(p!=NULL&&j<i-1)
{
p=p->next;
j++;
}
if(p==NULL) return ERROR;
LNode *s=new LNode;
s->num=xh;
s->name[20]=xm[20];
s->data=cj;
s->next=p->next;
p->next=s;
return OK;
}
//遍历
Status TraverseList(LinkList L)
{
LNode *p=L->next;
while(p!=NULL)
{
cout<<p->num<<endl;
cout<<p->name<<endl;
cout<<p->data<<endl;
p=p->next;
}
return 0;
}
//销毁
void DestroyList(LinkList &L)
{
LNode *p;
while(L!=NULL)
{
p=L->next;
delete L;
L=p;
}
}
//主函数
int main()
{
LinkList L;
InitList(L);//初始化
ElemType cj,xh;
ZF xm[20];
int i;
cout <<"请输入学生信息"<<endl;
for(i=0;i<3;i++)
{
cout<<"学号:";
cin>>xh;
cout<<"姓名:";
cin>>xm;
cout<<"成绩:";
cin>>cj;
ListInsert(L,i+1,xh,xm,cj);//插入
}
TraverseList(L);//遍历
DestroyList(L);//销毁
return 0;
}
除了成绩,姓名和学号都不对
是遍历出问题了嘛