//创建链式线性表,采用逆位序输入
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode , *LinkList; //*LinkList代表指向LNode节点的指针的类型名,定义指向LNode的指针时,LinkList 相当于 LNode*
int main()
{
LinkList m;
LNode * CreateList_L(LinkList &L ,int n); //声明
LNode *p = CreateList_L(m , 6);
while(p->next)
{ p = p->next; //while(p)时,p->next会出现越界,越界地址赋给p会中断
cout<<p->data<<" ";
}
}
LNode * CreateList_L(LinkList &L , int n)
{
//建立带头结点的单链线性表
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL; //建立一个带头结点的链表
for(int i = n ; i>0 ; --i)
{
LNode *p = (LinkList)malloc(sizeof(LNode)); //生成新节点
cout<<"输入第"<<n-i+1<<"个节点数据"<<endl;
cin>>p->data;
p->next = L->next;
L->next = p; //插入到表头
}
return L;
}
运行结果图: