数据结构C语言实现----出栈操作
代码如下:
#include<stdio.h>
#include<stdlib.h> typedef struct
{
char *base;
char *top;
int stacksize;
}sqStack; //////////////////////////////////////
//创建一个栈
#define STACK_SIZE 100
void initstack(sqStack *stack )
{
stack->base = (char*)malloc( STACK_SIZE * sizeof(char));
if (!stack->base)
{
exit(0);
}
stack->top = stack->base;
stack->stacksize = STACK_SIZE;
}
////////////////////////////////////
//入栈操作
#define STACK_MORE 10
void Push(sqStack *stack , char c)
{
if (stack->top - stack->base > stack->stacksize)
{
stack->base = (char*)realloc(stack->base , (stack->stacksize + STACK_MORE) * sizeof(char));
if (!stack->base)
{
exit(0);
} stack->top = stack->base + stack->stacksize;
stack->stacksize = stack->stacksize + STACK_MORE;
}
*(stack->top) = c;
stack->top++;
}
//////////////////////////////////////
//出栈操作
void Pop(sqStack *stack , char *c)
{
if (stack->base == stack->top)
{
return;
}
*c = *--(stack->top);
} int main()
{
sqStack stack;
char c=1;
printf("请安任意键创建一个栈...\n");
getchar();
initstack(&stack);
printf("创建成功!\n");
printf("请输入要压入栈的一个字符串(读取到0截至): ");
while ((c = getchar()) != '\n')
{
//scanf("%c",&c);
//fflush(stdin);
if (c!='\n')
{
Push(&stack , c);
}
}
printf("压入字符完成,正在打印字符串...\n");
for (size_t i = 0; i < (stack.top - stack.base); i++)
{
printf("%c",*(stack.base + i));
}
putchar('\n');
printf("请输入要弹出几个字符:");
int k;
scanf("%d",&k);
while (k)
{
k--;
Pop(&stack , &c);
printf("字符%c已弹出!\n",c);
}
printf("弹出字符完成,正在打印字符串...\n");
for (size_t i = 0; i < (stack.top - stack.base); i++)
{
printf("%c",*(stack.base + i));
}
putchar('\n');
return 0;
}
运行结果:
数据结构C语言实现----出栈操作的更多相关文章
- 数据结构C语言实现----出队伍操作
1.创建一个队列时,空队列中队首和队尾相同,但不是NULL,队首后面挂的元素才是NULL 2.打印队列时,对于链队列,不能把指针加一来找到下一个数据,因为链表地址不连续,需要复制一条链表,不断往后遍历 ...
- Python模拟入栈出栈操作
目标: 1.编写菜单,提示用户操作选项(push,pop,view,quit) 2.规则:定义列表,先入栈,后出栈,后入栈,先出栈 1.模拟入栈.出栈操作 >>> list1 = [ ...
- 在堆栈中,push为入栈操作,pop为出栈操作
LinkedList提供以下方法:(ArrayList无此类方法) addFirst(); removeFirst(); addLast(); removeLast(); 在堆栈中,push为入栈操作 ...
- 数据结构(C语言版)顺序栈相关算法的代码实现
这两天完成了栈的顺序存储结构的相关算法,包括初始化.压栈.出栈.取栈顶元素.判断栈是否为空.返回栈长度.栈的遍历.清栈.销毁栈.这次的实现过程有两点收获,总结如下: 一.清楚遍历栈的概念 栈的遍历指的 ...
- Java定义栈结构,实现入栈、出栈操作
package com.example.demo; import java.util.ArrayList; public class Stack { ArrayList<Object> l ...
- C语言数据结构-链式栈的实现-初始化、销毁、长度、取栈顶元素、查找、入栈、出栈、显示操作
1.数据结构-链式栈的实现-C语言 //链式栈的链式结构 typedef struct StackNode { int data; struct StackNode *next; } StackNod ...
- C语言数据结构-栈的实现-初始化、销毁、长度、取栈顶元素、查找、入栈、出栈、显示操作
1.数据结构-栈的实现-C语言 #define MAXSIZE 100 //栈的存储结构 typedef struct { int* base; //栈底指针 int* top; //栈顶指针 int ...
- 数据结构(c语言第2版)-----了解链表,栈,队列,串
关于链表我觉得这都是最基本的东西,但是不常见,在实际的应用中很少的使用,了解它会用就OK,不需要研究的那么深,除非做那种内存压缩,存储方面工作. C语言中动态申请空间 malloc() q=(dlin ...
- C语言实现链栈的初始化&进栈&出栈&读取栈顶元素
/*链表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typede ...
随机推荐
- Android学习笔记基于回调的事件处理
流程: 常见的回调方法: 代码示例: @Override public boolean onTouchEvent(MotionEvent event) { Toast.makeText(getAppl ...
- Python Selenium百度搜索翻页查找文字
#!/usr/bin/python # -*- coding: utf- -*- from selenium import webdriver import time # browser = webd ...
- android屏幕适配的全攻略2--支持手机各种屏幕密度dpi
如何为不同密度的屏幕提供不同的资源和使用密度独立的单位. 1 使用密度无关像素 坚决杜绝在布局文件中使用绝对像素来定位和设置大小.因为不同的屏幕有不同的像素密度,所以使用像素来设置控件大小是有问题的, ...
- C# 人脸识别库
.NET 人脸识别库 ViewFaceCore 这是基于 SeetaFace6 人脸识别开发的 .NET 平台下的人脸识别库这是一个使用超简单的人脸识别库这是一个基于 .NET Standard 2. ...
- Python 简明教程 --- 9,Python 编码
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. -- Joshua Bloch 目录 1, ...
- 暑假集训day1 水题 乘法最大
题目大意:有一个长度为N的字符串,要求用K个乘号将其分成K+1个部分,求各个部分相乘的最大值 输入:第一行输入N和K,第二行输入一个长度为N的字符串 算法分析 1. 这个题只是一个简单的dp(甚至连区 ...
- 锐捷交换机18010-X端口假死现象
一次上架锐捷交换机,由于ODF光衰不稳定,导致交换机端口down,排查很多发现以下故障: 重置18010-X端口发现提示一下命令: Port in violation! Use 'errdisable ...
- 一文说通MongoDB via Python操作
Python并不仅仅是一个做Machine Learning的语言. 说到Python,一般都会感觉它关联着ML,如果不是做ML开发,就会觉得离自己很远.而实际上,作为一门语言,Python在应用 ...
- Zookeeper-Access Control List(ACL)
概述 Z K作为一个分布式协调框架.内部存储着一些分布式系统运行时状态的元数据.如何有效的保护这些数据的安全.如何做一个比较好的权限控制显得非常的重要. ZK 为我们提供一套完善的 ACL(acces ...
- Spring中使用注解时启用<context:component-scan/>
在spring中使用注解方式时需要在spring配置文件中配置组件扫描器:http://blog.csdn.net/j080624/article/details/56277315 <conte ...