c语言stack中stack是什么c语言stack中stack是什么

C语言中用stack pop() top 等与栈有关的函数需要什么头文件啊???_百度知道
C语言中用stack pop() top 等与栈有关的函数需要什么头文件啊???
#include&stdio.h&void main(){&void zhuanhuan(int n);&&printf(&输入需转换的正整数:\n&);&scanf(&%d&,&ns);}void zhuanhuan(int n){&&initstack(s);&if(n==0)&{&&push(s,0);&}&while(n!=0)&{&&push(s,n%2);&&n/2;&}&printf(&对应的二进制数为:%d\n&);&while(!stackempty(s))&{&&printf(&%d&,pop(s));&}&printf(&\n&);}编译时出错:\Documents and Settings\Administrator\桌面\栈.c(18) : error C2065: 'stack' : undeclared identifierC:\Documents and Settings\Administrator\桌面\栈.c(18) : error C2146: syntax error : missing ';' before identifier 's'C:\Documents and Settings\Administrator\桌面\栈.c(18) : error C2065: 's' : undeclared identifierC:\Documents and Settings\Administrator\桌面\栈.c(19) : warning C4013: 'initstack' assuming extern returning intC:\Documents and Settings\Administrator\桌面\栈.c(22) : warning C4013: 'push' assuming extern returning intC:\Documents and Settings\Administrator\桌面\栈.c(30) : warning C4013: 'stackempty' assuming extern returning intC:\Documents and Settings\Administrator\桌面\栈.c(32) : warning C4013: 'pop' assuming extern returning int执行 cl.exe 时出错.栈.exe - 1 error(s), 0 warning(s)&好像是没有申明与栈操作有关的函数??&
栈的头文件是要自己定义的struct Stack{ int mData[100]; int mL};//初始化栈void InitStack(Stack &S){ S.mLen = 0;}//元素进栈void Push(Stack &S,int item){ S.mData[S.mLen++] =}//删除栈顶元素int Pop(Stack &S){ S.mLen--; return S.mData[S.mLen];}//返回栈顶元素int
Peek(Stack &S){ return S.mData[S.mLen-1];}//判断栈是否为空bool EmptyStack(Stack &S){ if(S.mLen == 0) }//清空栈void Clear(Stack &S){ for(int i = 0;i&S.mL++i) {
Pop(S); }}
其他类似问题
为您推荐:
头文件的相关知识
其他1条回答
c语言的栈不是要自己定义吗? 详细可看这里:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁1733人阅读
/*implement a stack in c*/
#define STACK_INIT_SIZE 10
#define STACK_INCREMENT 2
#include &stdio.h&
#include &stdlib.h&
#include &assert.h&
typedef int ElemT
typedef int S
typedef struct SqStack{
ElemType *
ElemType *
int stackS
//traverse the stack from base to top
void print(SqStack *s){
assert(s);
ElemType *elem = s-&
if(s-&base == s-&top){
printf(&This is an empty stack!\n&);
for( elem != s-& elem++){
printf(&element is %d&, *elem);
printf(&\n&);
//init statck
SqStack* InitStack(SqStack *s){
s = (SqStack*)malloc(sizeof(SqStack));
s-&base = (ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));
s-&top = s-&
s-&stackSize = STACK_INIT_SIZE;
printf(&Init stack successfully!\n&);
//free stack
Status FreeStack(SqStack *s){
printf(&Stack is null no need to free!\n&);
free(s-&base);
//push element into stack
Status Push(SqStack *s, ElemType e){
assert(s);
//stack is full, need more space
if(s-&top - s-&base &= s-&stackSize){
s-&base = (ElemType*)realloc(s-&base, (s-&stackSize + STACK_INCREMENT)*sizeof(ElemType));
if(!s-&base){
printf(&realloc failed!\n&);
s-&top = s-&base + s-&stackS
s-&stackSize += STACK_INCREMENT;
*(s-&top) =
++(s-&top);
//pop out elem from stack
Status Pop(SqStack *s, ElemType *e){
assert(s);
if(s-&base == s-&top){
printf(&It's a empty stack\n&);
--(s-&top);
void main(){
SqStack *s;
s = InitStack(s);
for(i = 0 ; i & 20 ; i++){
int elem = rand()%100;
Push(s,elem);
FreeStack(s);
&&&&&&& 这是一个简单栈的实现,我是菜鸟写的不好,大家轻拍。我写在空间里的文章,都是抱着学习的态度来的,把自己的想法写下来,如果哪位大牛看出了问题,我是非常乐意求教的。
&&&&&&&& Thank you all!
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:112138次
积分:1597
积分:1597
排名:第14074名
原创:42篇
评论:53条
(2)(1)(1)(3)(5)(1)(1)(1)(2)(5)(5)(2)(6)(1)(3)(1)(6)C语言里if((i=!i)!void f31 (stack *S){Queue Q;Stack T;int i=0;InitQueue(&Q);InitStack(&T);While(!StackEmpty(S))if((i=!i)!=0) Push(&T,Pop(S));else EnQueue(&Q,Pop(S));.其中i指什么?书上说是S元素出栈,奇数入栈T,偶数入队Q,谢谢你_百度作业帮
C语言里if((i=!i)!void f31 (stack *S){Queue Q;Stack T;int i=0;InitQueue(&Q);InitStack(&T);While(!StackEmpty(S))if((i=!i)!=0) Push(&T,Pop(S));else EnQueue(&Q,Pop(S));.其中i指什么?书上说是S元素出栈,奇数入栈T,偶数入队Q,谢谢你
C语言里if((i=!i)!void f31 (stack *S){Queue Q;Stack T;int i=0;InitQueue(&Q);InitStack(&T);While(!StackEmpty(S))if((i=!i)!=0) Push(&T,Pop(S));else EnQueue(&Q,Pop(S));.其中i指什么?书上说是S元素出栈,奇数入栈T,偶数入队Q,谢谢你的回答,但是i是指的什么啊?记录哪个的?
if((i=!i)!=0)意思是:首先将i取非(计算机以二进制表示,其中0通常代表假,1代表真),然后赋值给i,再判断是否等于0,若不等于0则执行Push(&T,Pop(S));否则执行EnQueue(&Q,Pop(S));因为i的初值是0故第一步判断后执行Push(&T,Pop(S))第二步执行EnQueue(&Q,Pop(S));所以书上说的正确.仅供参考!不好意思先前的回答有点问题,现在改了.这里的i其实没有记录数据,它的作用是:第一次循环:其初值0,然后取非变为1;然后if语句判断是否为零.(显然第一次)第二次时i的值已经变为1了,然后取非变为0,然后判断······一直到循环结束.用心创造滤镜
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(1446)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_083',
blogTitle:'C语言实现数据结构中的顺序栈',
blogAbstract:'栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表,通常称插入,删除的一段为栈顶(Top),另一端为栈底(Botton)。当表中没有元素时称为空栈.\r\n栈是后进先出(last in first out)的线性表&\r\n下面是C语言实现数据结构中的顺序栈及基本算法\r\n# include &stdio.h&# include &stdlib.h&/*定义顺序栈*/# define StackSize 100&&&& //假定预分配的栈空间最多为100个元素typedef char DataT&&&& //假定栈元素的数据类型为字符typedef struct{',
blogTag:'c语言,数据结构',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 c语言中int是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信