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

栈的基本操作的实现(c语言),高手速来!!

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

我来回答

1个回答

热心网友 时间:2023-08-10 23:35

/*程序错误太多*/ #include"stdio.h"
#include"stdlib.h"
#include"time.h"
#include"malloc.h"
#define
STACK_INIT_SIZE
10
//栈容量 typedef
struct
SqStack
{

int
top;
//栈顶当前指针

int
*base;
//栈空间数组
}SqStack; void
InitStack(SqStack
&S);
//构造空栈S
int
Push(SqStack
&S,int
e);
//入栈(栈地址,入栈数据)
返回0对,-1错
int
Pop(SqStack
&S);
//出栈
(栈地址)返回栈顶数据
int
StackLength(SqStack
S);
//返回站的元素个数,即求栈长
void
Print_S(SqStack
S);
//显示栈内数据 int
main()
{

SqStack
S;

int
i=0;

int
a,e;

InitStack(S);

srand((unsigned)time(NULL));
//srand((unsigned)time(NULL))以time函数值(当前时间)作为种子
printf("随机填充5个元素为:
");

while(
i<5)

{

a
=
rand()%100;

printf("%d
",
a);

Push(S,a);

i++;

}
Print_S(S);

printf("请输入要插入栈顶的元素:");

scanf("%d",&e);

Push(S,e);

Print_S(S);

printf("再弹出的栈顶元素为:%d
\n",Pop(S));

printf("栈的长度为:%d
\n",StackLength(S));

Print_S(S);

return
0;
} void
InitStack(SqStack
&S)
//构造空栈S
{

S.base
=
(int
*)malloc(STACK_INIT_SIZE
*
sizeof(int));
//分配组数空间,长度STACK_INIT_SIZE

if
(S.base==NULL)

{

printf("内存分配失败!\n");

return;

}

S.top=-1;
} int
Push(SqStack
&S,int
e)
{

if(S.top>=STACK_INIT_SIZE)

{

printf("栈空间已满,入栈失败!\n");

return
-1;

}

else

{

S.base[++S.top]=e;

return
0;

}
} int
Pop(SqStack
&S)
//返回栈顶数据
{

if
(S.top>=0)
//栈内有数据

{

return
S.base[S.top--];

}

else

{

printf("空栈,无数据弹出!\n");

return
-1;

}
} int
StackLength(SqStack
S)
{

return
S.top+1;
} void
Print_S(SqStack
S)
{

printf("\n出栈显示:");

if(S.top
==
-1)
printf("栈内无数据!\n");

else

{

while(S.top>=0
)
printf("%d
",Pop(S));

putchar('\n');

}
}
急!用c语言实现链栈的操作

⑷出栈/*删除链栈top的栈顶结点*/ int PopLinkStack (LinkStack* &amp; s, ElemType &amp;x){ LinkStack *p;if(s==NULL) return 0;x = s-&gt;data; /*将栈顶数据存入*x */ p = s; /*保存栈顶结点地址*/ s = s-&gt;next; /*删除原栈顶结点*/ free (p); /*释放原栈顶结点*/ return ...

利用栈的基本操作实现将任意一个十进制整数转化为R进制整数

//思路:将十进制数(number)除以R取余,让取得的余数(number Mod R )进栈,让十进制数变为 number/R,重复上述过程,直到number等于0为止,然后依次从栈中取出数据即为所求,直到栈为空,下面是实现的代码:include&lt;stdio.h&gt; include&lt;stdlib.h&gt; define MAX_SIZE 80 typedef struct {//栈的数据结...

用C语言编写函数实现顺序栈的进栈、退栈、取栈顶的算法。

initstack(s); //想初始化定义好的栈 //当栈为空时调用出栈操作 pop(s);//向栈中添加一个元素a push(s,'a');//观察此时的栈顶元素 x=gettop(s);printf("%c\n",x);//再添加一个元素b push(s,'b');//观察此时的栈顶元素 x=gettop(s);printf("%c\n",x);//弹出栈顶的...

数据结构定义一个栈并实现入栈和出栈操作的程序c语言完整版

常用数据结构:数组 (Array)、栈 (Stack)、队列 (Queue)、链表 (Linked List)、树 (Tree)、图 (Graph)、堆 (Heap)、散列表 (Hash)

一、 栈的基本操作 实验目的:了解栈逻辑结构的特点,掌握栈的基本操作...

} Stack popstack(Stack S){ if(S.top==S.base)exit(1);--S.top;return S;} int main(){ int i;Stack S;init(&amp;S);scanf("%d",&amp;i);S=pushstack(S,i);printf("%d\n",*(S.top-1));S=popstack(S);if(S.top==S.base)printf("栈为空");system("pause");return 0;} ...

用c语言编顺序栈 自己输入数字 越简单越好 开头 #include&lt;studio.h&gt;...

} break;case 4:if(top &lt;0){ printf("栈为空\n");}else{ printf("栈未空\n");} break;default:printf("请输入有效选择\n");break;} } } 这个就是顺序栈的简单操作,把所有的实现操作都放在主函数实现是个不好的编程习惯,要试着锻炼自己的函数设计能力(先把栈理解了,再学链表)。

一个关于栈的C语言代码。麻烦高手指点一下。刚学习,新手。求教。谢谢了...

define MAXNUM 100 struct Stack{ int a;double b;char c;};struct Stack stack[MAXNUM];int top=-1;define pop stack[top--]define push(s) stack[++top]=s

关于C语言的顺序栈的操作

int top;//栈顶 }Stack;//循环队列的结构定义 typedef struct { int elem[N];int front;int rear;}Queue;int Greatstack(Stack*);int GreatQueue(Queue *);int pop(Stack *s);void show(Stack *s);int push(Stack *s);int popStack(Stack *s);int enQueue(Queue *q);int deQueue(...

请问C语言实现栈的顺序存储结构程序怎么写,最好是编译过得,谢谢

void mPush(int x) { if ( top-bottom&lt;=STACKSIZE ) { mstack[top]=x; top++; } } int mPop() { int r=0; if ( top&gt;bottom ) { r=mstack[top]; top--; } return r; } void main(){ int i,n,x;char buffer[80];mInitStack();for ( i=0;i&lt;10;i++ ) { scanf("...

链栈(C语言)

链栈:C语言实现的栈式数据结构探索今天,我们将深入探讨C语言中的链栈,一种基于链表实现的栈结构。它虽然看似与单链表相似,但操作上却有着独特的限制——只能在栈顶进行插入和删除操作。让我们先来看看链栈的核心存储结构:typedef int SElemType;typedef struct node { SElemType data; // 数据...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
我想知道我们一般听到摩托车排气筒声音咻咻的那种叫什么排气筒啊 ...的奶茶品牌排名推荐,中国奶茶品牌排行榜10强排名_奶茶哪个牌子... 有时左手边断触,有时跳屏,是什么问题 楼面多厚才能屋面种菜 until和before作为连词引导时间状语从句有何区别 问引导的时间状语从句使用什么时态vo引导的时间状语从句用什么时态 引导时间状语从句的连词 It is +一段时间+since /before/until的区别? 新风暴太子摩托车为什么淹火花塞,化油器也换过,空滤器也清洗了,换上... — Have you ___ read this story before? — Yes. I’ve ___ read... 数据结构中栈的基本操作,如InitStack(&s)中用了引... 什么是栈,栈的基本运算是什么? 栈的操作 堆栈的基本操作有哪几个? 栈的基本操作~ 不知道怎么错的~ 求大侠~ 栈的基本操作有哪些? 以下哪一个不是栈的基本运算 计算机的发展分为四个阶段,那么各个阶段的特征是什么? 二零一五年安庆市九年级第一次模拟考试英语作文范文 初三第一单元英语作文《怎样学好英语》 急求九年级英语作文(寒假),好心人赶紧帮个忙 仁爱版九年级上学期必考的12篇英语作文 人教版九年级英语作文 九年级英语作文怎么写 九年级第五单元作文 以桃花源记展开想象和联想写故... 九年级英语Unit 5课文翻译 关于有教育意的交流访问的英语作文unit5 九年级英语作文 九年级上册英语作文1~5篇(每单元一篇),用的是外... 仁爱Unit5英语作文介绍一个景点80词带翻译 中国的 栈的基本操作 基本运算的栈的定义及基本运算 编程高手帮帮忙!栈的基本操作 用栈的顺序存储结构实现栈的各种基本操作 什么是栈?请说明详细一些 栈的c语言实现基本操作 急!!求栈的基本操作 栈的基本操作的C语言程序 数据结构实验(用c语言写) 栈的基本操作 百度输入法按键音和按键振动怎么设置? 百度输入法按键音怎样去除 百度输入法!!!!他妈的按键音怎么去除!听得烦... 百度输入法按键音怎样去除,百度输入法按键音 苹果手机关闭了按键音,怎么打字时还有声音,我用... 百度输入法的按键音怎么取消啊? 百度输入法的声音怎么关闭 安卓版本的百度输入法按键音怎么换 电脑上如何设置 百度输入法 或者 搜狗输入法 的按... iphone6用百度输入法,按键声音怎么关掉。 iphone 6用百度输入法时按键声音怎么关掉?
  • 焦点

最新推荐

猜你喜欢

热门推荐