#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct Node
{
int data;
struct Node *next;
}node,*pnode;
pnode creat_list(void);
void traverse_list(pnode phead);
//函数声明
int main()
{
pnode phead=NULL;
phead =creat_list();
/*
创建一个非循环的单链表
并将这个链表的头节点的地址付给phead
*/
traverse_list(phead);
return 0;
}
pnode creat_list(void)
{
int len;//用来存放有效结点的个数
int val;//用来临时存放用户输入的结点的值
cout<<"请输入您需要生成链表的节点的个数"<<endl;
cin>>len;
//生成一个头节点的指针
pnode phead=(pnode)malloc(sizeof(node));
pnode ptail=phead;
phead->next=NULL;
if(phead==NULL)
{
cout<<"内存分配失败,程序终止。"<<endl;
exit(-1);
}
for(int i=0;i<len;i++)
{
cout<<"请输入第"<<i+1<<"个结点的值"<<endl;
cin>>val;
pnode pnew=(pnode)malloc(sizeof(node));
if(pnew==NULL)
{
cout<<"内存分配失败,程序终止。"<<endl;
exit(-1);
}
pnew->data=val;
ptail->next=pnew;
pnew->next=NULL;
ptail=pnew;
}
return phead;
}
void traverse_list(pnode phead)
{
pnode p=phead->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}