博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表的倒序查找
阅读量:6528 次
发布时间:2019-06-24

本文共 1729 字,大约阅读时间需要 5 分钟。

我所使用的方法在输入的时候是使用一个栈存储所有的数据,利用的是其先进后出的数据结构。

当然,用一个数组也是可以的= =,而且我觉得还可以保存数据,而用stack的话操作比较麻烦。

#include 
#include
#include
#include
#define LEN sizeof(Node)using namespace std;struct Node{ int data; Node *next;};stack
s;int tot = 0;Node *Node_Creat(){ Node *head; head = (Node *)malloc(LEN); if(head == NULL) { printf("Overflow\n"); exit(1); } head = NULL; Node *p1,*p2; p1 = p2 = (Node *)malloc(LEN); if(p1 == NULL || p2 == NULL) { printf("Overflow\n"); exit(1); } scanf("%d",&p1 -> data); while(p1 -> data >= 0) { tot++; s.push(p1 -> data); if(head == NULL) { head = p1; } else { p2 -> next = p1; } p2 = p1; p1 = (Node *)malloc(LEN); if(p1 == NULL) { printf("Overflow\n"); exit(1); } scanf("%d",&p1 -> data); } p2 -> next = NULL; return head;}void Node_Print(Node *head){ if(head == NULL) { printf("EMPTY!\n"); return ; } Node *p = head; while(p != NULL) { printf("%d ",p -> data); p = p -> next; } printf("\n");}void Node_ReverseFound(int num){ int i; int data = 0; if(num > tot) { printf("NOT FOUND\n"); } for(i = 1; i < num; i++) { s.pop(); } printf("%d\n",s.top());}int main(){ Node *head; head = Node_Creat(); Node_Print(head); int num; scanf("%d",&num); printf("Reverse Found num: %d\n",num); Node_ReverseFound(num); return 0;}

转载地址:http://qxtbo.baihongyu.com/

你可能感兴趣的文章
[原]Open API安全考虑
查看>>
Sql日期时间格式转换
查看>>
shell--字符串的截取变量子串串
查看>>
Cas_个人理解
查看>>
UISearchController
查看>>
梦断代码阅读笔记02
查看>>
c# dataGridView cell添加下拉框
查看>>
轮毂电机光电增量编码器的ABZ信号详解
查看>>
uva 11029(数学)
查看>>
SpringBoot整合Swagger测试api构建
查看>>
通过Gradle来下载依赖的jar包
查看>>
CentOS7下Django安装
查看>>
路由配置系统(URLconf)
查看>>
TextBox Template
查看>>
Linux MySQL 储存中文失败简单解决办法
查看>>
求最大值及其下标
查看>>
洛谷——P1330 封锁阳光大学
查看>>
css选择器
查看>>
1.1.4 启动另一个Activity
查看>>
Sharepoint添加EWSManagedAPI引用
查看>>