#include <iostream>
using namespace std;
#define Status int
#define ElemType int
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
Status CreateList_L(LinkList &L,int n)//头插法逆序输出
{
LinkList p;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for(int i=1;i<=n;i++)//for(int i=n;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode));
//scanf(&p->data);
cin>>p->data;
p->next=L->next;//头插法
L->next=p;
}
return 1;
}
Status BehindCreateList_L(LinkList &L,int n)//尾插法可得正序输出
{
LinkList p;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
LinkList q=L;
for(int i=1;i<=n;i++)//for(int i=n;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode));
//scanf(&p->data);
cin>>p->data;
p->next=q->next;
q->next=p;
q=q->next;
///p->next=L->next;//头插法
//L->next=p;
}
return 1;
}
Status ShowList_L(LinkList &L)
{
LinkList p=L->next;
while(p)
{
cout<<p->data<<endl;
p=p->next;
}
return 1;
}
int main ()
{
LinkList a;
//CreateList_L(a,4);
BehindCreateList_L(a,4);
ShowList_L(a);
system("pause");
}
1LinkList 指向结构体的指针
2LinkList &L 引用链表的首地址,操作能作用于原链表
3头插法逆序输出,尾插法顺序输出