您的位置:首页 > 其它

单链表的创建,遍历输出及释放

2013-12-10 13:17 225 查看


 

#include <iostream>

using namespace std;

 

typedef class List

{

public:

 int num;

 char name[10];

 class List* next;

}Node,*Link;

 

//创建链表

Link Create_List(Link pHead)

{

 int n;

 cout<<"请输入学生人数:";

 cin>>n;

 //创建头结点

 pHead=new Node;

 if(!pHead)

 {

  cout<<"Memory allocate failed\n";

  exit(-1);

 }

 cout<<"\n请输入编号:";

 cin>>pHead->num;

 cout<<"请输入姓名:";

 cin>>pHead->name;

 pHead->next=NULL;

 

 //创建剩余结点

 Link Pointer=pHead;

 for(int i=1;i<n;i++)

 {

  Link newNode=new Node;

  if(!newNode)

  {

   cout<<"Memory allocate failed\n";

   exit(-1);

  }

  cout<<"请输入编号:";

  cin>>newNode->num;

  cout<<"请输入姓名:";

  cin>>newNode->name;

  newNode->next=NULL;

  Pointer->next=newNode;

  Pointer=newNode;

 }

 return pHead;

}

 

//遍历输出链表

void Print_List(Link pHead)

{

 cout<<"\n 编号\t姓名\n============="<<endl;

 Link Pointer=pHead;

 while(NULL!=Pointer)

 {

  cout<<"  "<<Pointer->num<<"\t"<<Pointer->name<<endl;

  Pointer=Pointer->next;

 }

 cout<<endl;

}

 

//释放链表

void Free_List(Link pHead)

{

 while(NULL!=pHead)

 {

  Link Pointer=pHead;

  pHead=pHead->next;

  delete Pointer;

 }

}

 

int main()

{

 Link pHead=new Node;

 if(!pHead)

 {

  cout<<"Memory allocate failed\n";

  exit(-1);

 }

 

 //创建链表

 pHead=Create_List(pHead);

 

 //遍历输出链表

 Print_List(pHead);

 

 //释放链表

 Free_List(pHead);

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐