#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。
typedef int ElemType; //ElemType 为可定义的数据类型,此设为int类型
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
Status InitList(LinkList &L)
{
L=new LNode;
L->next=NULL;
return OK;
}
void CreateList_H(LinkList &L,int n)
{
LNode *r,*p;
L=new LNode;
L->next=NULL;
r=L;
for(int i=0;i<n;i++){
p=new LNode;
cin>>p->data;
p->next=NULL;r->next=p;
r=p;
}
}
int main()
{
int n;
LNode *L,*p;
InitList(L);
cin>>n;
CreateList_H(L,n);
p=L->next;
if(p==NULL)
{
exit(ERROR);
}
while(p->next!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<p->data;
cout<<endl;
return 0;
}
测试分析:1)最初使用前插法创建链表,导致输入的数倒序输出,之后换用后插法;
2)同样是p=NULL的情况缺乏考虑
3)题目要求最后一个数字后面不能有空格,于是改while(p!=NULL)为while(p->next!=NULL)