问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

栈的基本操作

发布网友 发布时间:2022-04-20 04:34

我来回答

3个回答

热心网友 时间:2023-07-22 15:23

我电脑出问题了,没有调试,看了你的代码,发现两处处问题:
1.初始化函数中你用了L.base = L.top,我觉得应该是L.top = L.base才正确。
2.show函数中if(L.top > L.base),我觉得应该是while(L.top > L.base )

既然是用C++,我认为用类来描述栈更有条理。类封装之后只向外面提供接口,而且都是模块操作。C虽然函数也是模块操作,但总感觉函数多,乱糟糟的。

以上仅为一家之言!

热心网友 时间:2023-07-22 15:24

构造空栈的函数 Initstack中
L.base=L.top; //空栈的标志
这句话不对,应该为
L.top = L.base;

热心网友 时间:2023-07-22 15:24

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define stack_init_size 100
#define stackincrement 10
typedef struct sqstack
{
int *base;
int *top;
int stacksize;
} sqstack;
int StackInit(sqstack *s)
{
s->base=(int *)malloc(stack_init_size *sizeof(int));
if(!s->base)
return 0;
s->top=s->base;
s->stacksize=stack_init_size;
return 1;
}
int Push(sqstack *s,int e)
{
if(s->top-s->base>=s->stacksize)
{
s->base=(int *)realloc(s->base,(s->stacksize+stackincrement)*sizeof(int));
if(!s->base)
return 0;
s->top=s->base+s->stacksize;
s->stacksize+=stackincrement;
}
*(s->top++)=e;
return e;
}
int Pop(sqstack *s,int e)
{
if(s->top==s->base)
return 0;
e=*--s->top;
return e;
}
int stackempty(sqstack *s)
{
if(s->top==s->base)
{
return 1;
}
else
{
return 0;
}
}
int conversion(sqstack *s)
{
int n,e=0,flag=0;
printf("输入要转化的十进制数:\n");
scanf("%d",&n);
printf("要转化为多少进制:2进制、8进制、16进制 填数字!\n");
scanf("%d",&flag);
printf("将十进制数%d转化为%d进制是:\n",n,flag);
while(n)
{
Push(s,n%flag);
n=n/flag;
}
while(!stackempty(s))
{
e=Pop(s,e);
switch(e)
{
case 10: printf("A");
break;
case 11: printf("B");
break;
case 12: printf("C");
break;
case 13: printf("D");
break;
case 14: printf("E");
break;
case 15: printf("F");
break;
default: printf("%d",e);
}
}
printf("\n");
return 0;
}
int main()
{
sqstack s;
StackInit(&s);
conversion(&s);
return 0;
}
专题篇|栈与队列详解

栈的基本操作有两个,即入栈和出栈。 入栈指将元素放入栈顶,出栈指将栈顶元素取出。栈的本质是一个容器,它可以存储任何类型的数据,但是栈的大小是固定的,因为它的元素只能在栈顶添加或删除。 栈有许多应用场景,比如我们在浏览网页时,可以使用浏览器的 “返回” 功能,这就是栈的应用之一。 当我们浏览网页时,每...

非结构化数据如何可视化呈现?

通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准...

数据结构(六)——栈(一):栈的基本知识

栈在栈顶进行操作,队列在队尾和队头进行操作。栈遵循先进后出原则,队列遵循先进先出原则。栈仅允许在栈顶进行插入和删除,而队列只允许在队尾插入并在队头删除。在遍历和数据访问效率上,队列通常优于栈。

【数据结构】栈的定义和基本操作(小白必看)

栈,作为数据结构中的一种,遵循后进先出的原则,仅允许在表的一端进行插入与删除操作。它有两种存储方式:顺序栈与链表栈。顺序栈利用连续存储单元存放元素,并通过指针指示当前栈顶位置。链表栈则采用单链表实现,所有操作在链表头部执行。本文将重点介绍顺序栈的实现。链表栈与单链表相似,具体实现可参考...

栈的基本操作

(1)初始化一个栈:InitStack (2)销毁一个栈:DestroyStack (3)清空一个栈:ClearStack (4)判断一个栈是否为空:StackIsEmpty (5)返回栈中元素个数,即栈的长度:StackLength (6)入栈,把一个元素加入到栈中:Push (7)出栈,把栈顶元素给干掉:Pop (8)返回栈顶元素,但不出栈...

栈的基本运算包括

栈的基本运算包括如下:1、入栈运算 入栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加一(即top加1),然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。这种情况称为栈上溢错误。2、退栈运算 退栈是指取出栈顶...

栈是什么意思

一、栈的基本定义 栈是一种遵循特定数据操作规则的线性数据结构,其规则是“后进先出”。这意味着最后一个被放入栈的元素总是第一个被取出。想象一下一摞盘子,我们每次都是在顶端放新的盘子,取走也是取最顶端的盘子,这就是栈的一个直观表现。二、栈的主要操作 栈的主要操作包括入栈和出栈。入栈...

栈的特点是___,队列的特点是___。(3分)

栈的基本操作有:入栈,将元素添加到栈顶。出栈,从栈顶移除元素。查看栈顶元素,查看栈顶元素但不移除它。栈的主要用途包括:1、实现递归算法:递归算法需要在函数调用时保存函数的上下文信息,栈可以很好地实现这一需求。2、表达式求值:在计算机编程中,栈可以用于表达式求值,通过栈顶元素的进出操作来...

栈是先进先出还是先进后出?

栈是先进后出。栈是一种线性数据结构,其操作遵循后进先出的原则。这意味着最后一个被放入栈的元素会是第一个被取出的元素。具体解释如下:栈的基本特性 栈具有一个特性,称为“后进先出”。当元素入栈时,它们会按照进入的顺序存放,但当你需要访问或移除这些元素时,最先进入的元素会被压在下面,...

出栈的栈基本操作

1.进栈(PUSH)①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);②置TOP=TOP+1(栈指针加1,指向进栈地址);③S(TOP)=X,结束(X为新进栈的元素);2.出栈(POP)①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈,...

栈怎么读音是什么

栈的基本操作包括入栈(push)和出栈(pop)。入栈操作是将元素添加到栈顶,而出栈操作则是从栈顶移除元素。由于栈遵循后进先出的原则,因此最后入栈的元素会最先被出栈。这种特性使得栈在处理某些问题时具有独特的优势,比如解析表达式中的括号匹配问题,或者在函数调用过程中保存和恢复现场信息等。在...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
街头篮球怎样防止被掏球 街头篮球的G怎么后背2如题 谢谢了 街头篮球PG的背后运球2怎样使用? 热门机会:线上兼职,众图网特邀设计师,了解一下? 塘夏属于哪个市 在括号里填上合适的词语 童年往事就像记忆仓库中的一颗颗( )的珍珠... 什么的珍珠填上恰当的词语 什么的珍珠填词语 Delphi查询数据库表中是否含有某条记录 县城天然气公司有绩效吗 栈的基本操作的实现(c语言),高手速来!! 数据结构中栈的基本操作,如InitStack(&s)中用了引... 什么是栈,栈的基本运算是什么? 栈的操作 堆栈的基本操作有哪几个? 栈的基本操作~ 不知道怎么错的~ 求大侠~ 栈的基本操作有哪些? 以下哪一个不是栈的基本运算 计算机的发展分为四个阶段,那么各个阶段的特征是什么? 二零一五年安庆市九年级第一次模拟考试英语作文范文 初三第一单元英语作文《怎样学好英语》 急求九年级英语作文(寒假),好心人赶紧帮个忙 仁爱版九年级上学期必考的12篇英语作文 人教版九年级英语作文 九年级英语作文怎么写 九年级第五单元作文 以桃花源记展开想象和联想写故... 九年级英语Unit 5课文翻译 关于有教育意的交流访问的英语作文unit5 九年级英语作文 九年级上册英语作文1~5篇(每单元一篇),用的是外... 基本运算的栈的定义及基本运算 编程高手帮帮忙!栈的基本操作 用栈的顺序存储结构实现栈的各种基本操作 什么是栈?请说明详细一些 栈的c语言实现基本操作 急!!求栈的基本操作 栈的基本操作的C语言程序 数据结构实验(用c语言写) 栈的基本操作 百度输入法按键音和按键振动怎么设置? 百度输入法按键音怎样去除 百度输入法!!!!他妈的按键音怎么去除!听得烦... 百度输入法按键音怎样去除,百度输入法按键音 苹果手机关闭了按键音,怎么打字时还有声音,我用... 百度输入法的按键音怎么取消啊? 百度输入法的声音怎么关闭 安卓版本的百度输入法按键音怎么换 电脑上如何设置 百度输入法 或者 搜狗输入法 的按... iphone6用百度输入法,按键声音怎么关掉。 iphone 6用百度输入法时按键声音怎么关掉? 最新的百度输入法如何关闭按键音
  • 焦点

最新推荐

猜你喜欢

热门推荐