C++创建链表的思路和C语言一样只是实现的方式不同
C++创建链表的思路http://blog.csdn.net/u010105970/article/details/24345739
程序代码:
#include <iostream> #include <cstdlib> using namespace std; class Node//结点结果 { public: void Create_list();//创建链表 void Traverse_list();//遍历链表 private: int val;//数据域 Node *pNext;//指针域 Node *pHead;//头结点 }; typedef struct Node NODE; typedef struct Node* PNODE; /* NODE相当于struct Node PNODE 相当于 struct Node* */ //创建链表 void Node::Create_list() { //创建一个头结点 pHead = new NODE[sizeof(NODE)]; if(NULL == pHead) { cout<<"动态内存分配失败,程序终止!"<<endl; exit(0); } PNODE pTail = pHead;//创建一个指向头结点的指针 pTail->pNext = NULL;//初始化指针的指针域为NULL int len;//用于保存链表中结点的个数 cout<<"请输入你需要创建的结点的个数:"; cin>>len; for(int i=1; i<=len; i++) { int num;//保存每个结点的值 cout<<"请输入第"<<i<<"个结点的值:"; cin>>num; //创建一个保存数据的新结点 PNODE pNew = new NODE[sizeof(NODE)]; if(NULL == pNew) { cout<<"动态内存分配失败,程序终止!"<<endl; exit(0); } pNew->val = num;//初始化结点的数据域 pTail->pNext = pNew;//将pNew挂在老结点的后面 pTail = pNew;//将指针pTail移到pNew上 pTail->pNext = NULL;//清空指针域 } } //遍历链表 void Node::Traverse_list() { PNODE p = pHead->pNext; while(NULL != p) { cout<<p->val<<" "; p = p->pNext; } cout<<endl; } void main() { NODE pHead; //创建链表 pHead.Create_list(); //遍历链表 pHead.Traverse_list(); system("pause"); }
执行结果:
使用C++创建链表
时间: 2024-10-14 13:42:12