首页 > 代码库 > 使用C++创建链表
使用C++创建链表
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"); }
执行结果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。