代码实现:
#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef char SElemType;
//链表的存储结构
typedef struct LNode
{
SElemType data;
struct LNode *next;
}StackNode, *LinkList;
//链表的初始化
int InitList(LinkList &L)
{
L = new LNode;
L->next = NULL;
return 1;
}
//后插法创建链表
void CreateList(LinkList &L, int n)
{
L = new LNode;
L->next = NULL;
LinkList p,r;
r=L;
for(int i=0;i<n;i++)
{
p=new LNode;
cin>>p->data;
p->next=NULL;
r->next=p;
r=p;
}
}
//遍历输出链表中各个结点的递归算法
void TraveList(LinkList p)
{
if (p == NULL)
return;//递归终止
else
{
cout<<p->data<<endl;// 输出当前结点的数据域
TraveList(p->next);// p指向后继指点继续递归
}
}
int main()
{
LinkList L;
int n;
InitList(L);
cout<<"请输入元素的个数:"<<endl;
cin>>n;
cout<<"请输入链表元素:"<<endl;
CreateList(L, n);
cout<<"遍历链表:"<<endl;
TraveList(L->next);
cout<<endl;
return 0;
}