单链表逆序输出C++ (stack方法、双向链表方法以及vector方法)
来源:互联网 发布:遇见这软件靠谱吗 编辑:程序博客网 时间:2024/06/17 08:05
#include "stdio.h"#include <iostream>#include "malloc.h"#include <stack>#include <vector> struct listNode{ listNode* next; int nodeData;}; struct twoDlistNode { twoDlistNode *next; twoDlistNode * pre; int nodeData; };int listData[] = {5,52,4,6,2,445,6,1,52,465,1};void buildList(listNode* head){ int i=1; listNode* tmp,*tmpold; int count = sizeof(listData)/4; head->nodeData = listData[0]; tmpold = head; for(;i<count;i++) { tmp = new listNode(); tmp->nodeData = listData[i]; tmpold->next = tmp; tmpold = tmp; } tmp -> next = NULL; }void twoD_method(listNode *tmp){ twoDlistNode *twoD,*twoDtmp,*twoDtmpold; if(!tmp) return ; twoD = new twoDlistNode(); twoD->pre = NULL; twoD->nodeData = tmp->nodeData; twoD->next = NULL; tmp = tmp->next; twoDtmpold = twoD; while(tmp) { twoDtmp = new twoDlistNode(); twoDtmp->nodeData = tmp->nodeData; twoDtmp-> pre = twoDtmpold; twoDtmpold->next = twoDtmp; twoDtmpold = twoDtmp; tmp = tmp->next; } printf("This is the twoD_method:\n"); while(twoDtmpold) { printf("%d\n",twoDtmpold->nodeData ); twoDtmpold = twoDtmpold->pre; }}void stack_method(listNode *tmp){ listNode *getNode; int getdata; std::stack<listNode*> mystack; while(tmp->next) { mystack.push(tmp); tmp = tmp->next; } mystack.push(tmp); printf("This is the stack_method:\n"); while(!mystack.empty()) { getNode = mystack.top(); getdata = getNode->nodeData; printf("%d\n",getdata); mystack.pop(); }}void vectorMethod(listNode *tmp){ std::vector<int> myvector; if (tmp==NULL) return; listNode* vMtmp = tmp; while(vMtmp) { myvector.push_back(vMtmp->nodeData); vMtmp = vMtmp->next; } printf("This is the vectorMethod\n"); for(std::vector<int>::iterator iter = myvector.end()-1;iter != myvector.begin()-1;iter--) printf("%d\n",*iter );}int main(void){ listNode* list; list = new listNode(); listNode* tmp; tmp = list; buildList(list); twoD_method(tmp); stack_method(tmp); vectorMethod(tmp);}
0 0
- 单链表逆序输出C++ (stack方法、双向链表方法以及vector方法)
- 一种双向链表设计方法(C++)
- C#-数字逆序输出的几种方法
- (c/c++)实现逆序输出整数的几种方法
- C++vector方法详解
- 用不同的方法实现字符串的逆序输出(C语言实现)
- 单链表逆序打印方法
- 整数逆序输出 几种方法小结(Java实现)
- algrothm_逆序输出(最简洁+内部方法)
- 递归方法字符串逆序输出问题
- 4种方法实现字符串逆序输出
- 递归方法的字符串逆序输出
- 单词逆序输出的简便方法
- 两种方法实现单向链表的创建、遍历、删除、查找、逆序输出(循环法和递归法)
- 两个任意长度的长整数相乘(C语言、双向链表方法)
- vector方法
- 链表逆序的实现方法
- 单链表逆序 多种方法总结
- mysql数据库,数据迁移a表到b表
- Apache Tomcat 信息泄露漏洞存在于所有版本
- java访问zabbix api中文提示json格式错误
- 对《深入理解Android虚拟机》一书的知识点总结
- Pigeon中的负载均衡
- 单链表逆序输出C++ (stack方法、双向链表方法以及vector方法)
- Nodejs express 获取url参数,post参数的三种方式
- centos7下python连接 hive2
- ButterKnife注入时出错
- Java扩展知识点
- 一份非常内行的Linux LVM HOWTO
- 几个博弈小题总结 脑子是个好玩意,我也想有一个。
- spark sql
- Bootstrap学习-按钮