从尾到头输出单链表
来源:互联网 发布:java计算a阶乘之和 编辑:程序博客网 时间:2024/05/16 07:37
#include <stdio.h>#include <stack>#include <string>#include <iostream>using namespace std;#include <stack> typedef struct Link{ int value; struct Link * LinkNext ;}Link,* LinkList;void initList(LinkList * head ){ if (head != NULL) { for (int i=0; i<10; i++) { LinkList p = (LinkList)malloc(sizeof(Link)); p->value = i; p->LinkNext = (*head)->LinkNext; (*head)->LinkNext = p; } }}LinkList reverse(LinkList head){ LinkList last = NULL ; LinkList start = head ; while (start != NULL) { LinkList temp = start->LinkNext; start->LinkNext = last ; last = start ; start = temp ; } return last;}LinkList reverse_DG(LinkList start , LinkList last = NULL){ if(start == NULL) return last; LinkList temp = start->LinkNext; start->LinkNext = last; return reverse_DG(temp , start);}void printList(LinkList start){ if (start != NULL) { while (start != NULL) { cout<<start->value<<" "; start = start->LinkNext; } }}//从尾到头打印链表方法1 递归void Print_method1(LinkList head){ if (head == NULL) { return ; } Print_method1(head->LinkNext); cout<<head->value<<" ";}//从尾到头打印链表2 利用栈void Print_methid2(LinkList head){ if(head != NULL || head->LinkNext != NULL){ stack<int> list ; while( head !=NULL ){ list.push(head->value); head = head->LinkNext; } while(!list.empty()){ cout<<list.top()<<" "; list.pop(); } }}int main(int argc , const char * argv[]) { LinkList head = (LinkList)malloc(sizeof(Link)); head->LinkNext = NULL; initList(&head); cout<<"原始的数值:"<<endl; printList(head->LinkNext); LinkList q = NULL; q = reverse_DG(head->LinkNext); // q = reverse(head->LinkNext); cout<<endl<<"反转后的的数值:"<<endl; printList(q); cout<<endl<<"从尾到头打印链表"<<endl; //Print_method1(q); Print_methid2(q); return 0;}
0 0
- 从尾到头输出单链表
- 从尾到头输出单链表
- 单链表从尾到头输出
- 从尾到头输出单链表
- 从尾到头输出单链表
- 从尾到头输出单链表
- 从尾到头输出单链表
- 单链表从尾到头输出元素
- 2.3从尾到头输出单链表每个结点的值
- 从尾到头输出链表--总结
- 从尾到头输出链表
- 从尾到头输出链表
- 031-从尾到头输出链表
- 从尾到头输出链表--归纳
- 从尾到头输出链表
- 从尾到头输出链表
- 从尾到头输出链表
- 从尾到头输出链表--总结
- (20)Air Band OpenCV2.4.13_腐蚀和膨胀
- 虚拟化和虚拟机简介
- 最全的Android源码目录结构详解
- Android中的动画
- MyEclipse 破解教程
- 从尾到头输出单链表
- KVM、QEMU与libvirt介绍
- Application Not Responding
- MFC Windows程序设计--在窗口绘图
- C++ — 内联函数
- 最长公共子序列 【DP】+【最长公共子序列】
- 求先序排列
- 解析深度卷积神经网络的14种设计模式
- 双系统进一次Win10就再也没有了系统选择界面