标签:
#include <iostream> using namespace std; //单个节点 struct List{ int data; //数据 List * pNext; //下一个节点 }; //向后追加 void push_back(List *&pRoot,int data){ auto tempNode = new List; tempNode->data = data; tempNode->pNext = NULL; if(pRoot==NULL){ pRoot = tempNode; }else{ auto t_node = pRoot; while (t_node->pNext!=NULL) { t_node = t_node->pNext; } t_node->pNext = tempNode; } } //弹出最后一个 void pop(List *pRoot){ if(pRoot==NULL){return;} auto t_node = pRoot; while (t_node->pNext->pNext!=NULL) { t_node = t_node->pNext; } delete t_node->pNext; t_node->pNext = NULL; } //释放 void release(List *&pRoot){ if(pRoot==NULL){return;} auto t_node = pRoot; while(t_node!=NULL){ auto temp = t_node->pNext; delete t_node; t_node = NULL; t_node = temp; } pRoot=NULL; } //遍历 void prontList(List * pRoot){ if(pRoot==NULL){ cout<<"该链表为空!"<<endl; return; } auto t_node = pRoot; while (t_node!=NULL) { cout<<"["<<t_node->data<<"]"; t_node = t_node->pNext; } } //创建单向链表 List * createList(int data[],int len){ List * pRoot = NULL; //根 for(int i=0;i<len;i++){ push_back(pRoot,data[i]); } return pRoot; } int main(){ cout<<"请输入节点数:"<<endl; int num; cin>>num; (num>100)?num=100:(num<1)?num=1:num; int * data = new int[num]; cout<<"请输入"<<num<<"个节点的数据:"<<endl; for(int i=0;i<num;i++){ cin>>data[i]; } cout<<"单向链表创建中...."<<endl; auto list = createList(data,num); cout<<"创建完成,打印如下:"<<endl; prontList(list); cout<<"\n资源释放中...."<<endl; release(list); delete[] data; data = NULL; cout<<"资源释放成功!"<<endl; return 0; }
标签:
原文地址:http://www.cnblogs.com/spriteZ/p/5591289.html