C语言数据结构栈
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node* pnext;
}node;
typedef struct Stack{
node* top;
}stack;
void init(stack* newstack){
newstack->top = NULL;
}
void input(stack* newstack,int e){
node* newnode = (node*)malloc(sizeof(node));
newnode->data = e;
newnode->pnext = newstack->top;
newstack->top = newnode;
}
void output(stack* newstack){
newstack->top = newstack->top->pnext;
}
void viewer(stack* newstack){
node* newnode = (node*)malloc(sizeof(node));
newnode = newstack->top;
while(newnode != NULL){
printf("%d\n",newnode->data);
newnode = newnode->pnext;
}
}
int main(int argc,char** argv){
int select,x;
stack* newstack = (stack*)malloc(sizeof(stack));
init(newstack);
while(1){
printf("1.入栈\n");
printf("2.出栈\n");
printf("3.遍历栈成员\n");
printf("0.退出程序\n");
printf("请选择你要执行的功能\n");
printf("您选择的功能是:");
scanf("%d",&select);
switch(select){
case 1: printf("请输入入栈成员的值\n");
scanf("%d",&x);
input(newstack,x);
break;
case 2: output(newstack);
break;
case 3: viewer(newstack);
break;
case 0: printf("程序已退出\n");
exit(1);
break;
default : printf("功能选择无效,请重新选择\n");
break;
}
}
}
C语言数据结构栈的更多相关文章
- C语言数据结构-栈的实现-初始化、销毁、长度、取栈顶元素、查找、入栈、出栈、显示操作
1.数据结构-栈的实现-C语言 #define MAXSIZE 100 //栈的存储结构 typedef struct { int* base; //栈底指针 int* top; //栈顶指针 int ...
- C语言数据结构----栈与递归
本节主要说程序中的栈函数栈的关系以及栈和递归算法的关系. 一.函数调用时的栈 1.程序调用时的栈是也就是平时所说的函数栈是数据结构的一种应用,函数调用栈一般是从搞地质向低地址增长的,栈顶为内存的低地址 ...
- C语言数据结构-栈
一.栈的定义 栈(statck)这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(First In Last Out, FILO).栈只有一个出口,允许新增元素(只能在栈顶上增加). 移出元 ...
- C语言数据结构----栈的应用(程序的符号匹配检测)
本节主要讲利用栈来实现一个程序中的成对出现的符号的检测,完成一个类似编译器的符号检测的功能,采用的是链式栈. 一.问题的提出以及解决方法 1.假定有下面一段程序: #include <stdio ...
- C语言数据结构----栈的定义及实现
本节主要说的是数据结构中的栈的基本定义和实现的方式,其中实现的方式采用的是复用顺序表和单向链表的方式. 一.栈的基本定义 1.栈是一种特殊的线性表,只能从固定的方向进出,而且栈进出的基本原则是:先进栈 ...
- 数据结构——栈(C语言实现)
#include <stdio.h> #include <stdlib.h> #include<string.h> #include<malloc.h> ...
- C语言数据结构之栈:中缀表达式的计算
*注:本人技术不咋的,就是拿代码出来和大家看看,代码漏洞百出,完全没有优化,主要看气质,是吧 学了数据结构——栈,当然少不了习题.习题中最难的也是最有意思的就是这个中缀表达式的计算了(可以算+-*/和 ...
- C++ 泛型 编写的 数据结构 栈
平时编程里经常需要用到数据结构,比如 栈和队列 等, 为了避免每次用到都需要重新编写的麻烦现将 C++ 编写的 数据结构 栈 记录下来,以备后用. 将 数据结构 栈 用头文件的形式 ...
- 数据结构——栈的实现(数组、Java)
巩固数据结构 栈是一种有限制的线性表 只能对表尾进行操作 package com.shine.test.datastruct; import java.util.Arrays; public clas ...
随机推荐
- 大数据存储利器 - Hbase 基础图解
由于疫情原因在家办公,导致很长一段时间没有更新内容,这次终于带来一篇干货,是一篇关于 Hbase架构原理 的分享. Hbase 作为实时存储框架在大数据业务下承担着举足轻重的地位,可以说目前绝大多数大 ...
- Maven pom.xml 添加本地jar包依赖以及打包方法
Maven项目打包时,如果遇到需要添加本地jar包依赖的时候,可以选择两种方法: 1. 安装到本地仓库 第一种方法比较常规,适用于需要添加的jar包也是由maven项目导出,含有pom文件的时候.只需 ...
- vue基础----过滤器filter
1.用的场景:一个功能在每个组件都能用,而computed虽然有缓存,但不能用在每一个组件,需要的话的每一个都需要写. 2.特点:改变数据的展示形式,不改变原有的形式 分为全局与局部的 <di ...
- [红日安全]Web安全Day12 – 会话安全实战攻防
本文由红日安全成员: ruanruan 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了 ...
- go例子(一) 使用go语言实现linux内核中的list_head
package list 代码 package list import ( "fmt" ) // 数据接口 type ElemType interface{} // 节点 type ...
- JMeter报错:Address already in use : connect
Address already in use : connect的解决办法: 修改操作系统注册表1.打开注册表:regedit2.找到HKEY_LOCAL_MACHINE\SYSTEM\Current ...
- 什么是Hibernate
Hibernate是一个基于JDBC的主流持久性框架,是一个优秀的ORM(object relation mapping)(对象关系映射)实现 ORM就是通过java对象映射到数据库表中,通过操作ja ...
- Frist
大家好,这是我开通博客的第一天,开通博客呢原因是在于想提升自己.我现在是一名大一的计算机科学与技术的学生,自己本来就对计算机感兴趣,现在想通过博客园这个平台写一些自己感兴趣的文章.现在主要在学java ...
- rbac权限(2)
models.py from django.db import models class User(models.Model): name=models.CharField(max_length=32 ...
- STM8L152的EEPROM读写(使用固件库)
STM8L系列单片机内置1K字节的EEPROM,使用起来很方便. EEPROM的地址为: 使用1.6.1的固件库 void EEPROM_Write_Byte(uint16_t Addr,uint8_ ...