| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1911 人关注过本帖
标题:新手上路,请求帮助~!关于栈的出栈和压栈
只看楼主 加入收藏
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:9 
新手上路,请求帮助~!关于栈的出栈和压栈
刚刚学习C语言,关于栈的一些代码,有些疑问,帮忙解释下啦~~
#include<stdlib.h>
#include<iostream.h>
#include<conio.h>

typedef char ElemType;
#define StackSize 100     /* 顺序栈的初始分配空间 */
typedef struct
{
    ElemType data[StackSize];   /* 保存栈中元素 */
    int top;     /* 栈指针 */
}SqStack;

void InitStack(SqStack *st)   /* st为引用型参数 */
{
    st->top=-1;
}

int Push(SqStack *st,ElemType x)    /* 进行栈运算,st为引用型参数 */
{
    if(st->top==StackSize-1)     /* 栈满 */
        return 0;
    else
    {
        st->top++;
            st->data[st->top]=x;
        return 1;
    }
}

int Pop(SqStack *st,ElemType *x)   /* 出栈运算,st和x为引用型参数 */
{
    if(st->top==-1)  /* 栈空 */
        return 0;
    else            /* 栈不空 */
    {
        *x=st->data[st->top];
        st->top--;
        return 1;
    }
}

压栈的时候,X是字符型数组,data[]的[]内为什么是st->top啊?还有就是出栈的时候为什么是这样啊*x=st->data[st->top]
谢谢哪位解释一下啦~~
搜索更多相关主题的帖子: 空间 学习 include 新手上路 C语言 
2011-10-03 16:31
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
收藏
得分:0 
有木有人来帮帮忙啊~~~
2011-10-03 16:36
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
收藏
得分:0 
怎么没人来啊。。。
2011-10-03 17:00
larryliu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:128
注 册:2011-9-30
收藏
得分:0 
我是来学习的~~
坐等LS解答。。。
2011-10-03 17:02
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
收藏
得分:0 
是我问的问题太低级了吗?怎么都没有人回答啊。。。纠结死了。
2011-10-03 17:13
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
收藏
得分:0 
吃了个饭回来了,还是没有人来啊。。。
2011-10-03 17:47
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
收藏
得分:0 
谁来解释一下啊,就简单的说下就行了啊。。。
2011-10-03 18:52
sx5273163
Rank: 2
等 级:论坛游民
帖 子:10
专家分:31
注 册:2011-9-24
收藏
得分:10 
我觉得栈不是后入先出表嘛,所以想要读出栈元素时只能从栈顶(即 st ->top)读起,而*x=st->data[st->top]就是把st栈的栈顶元素赋给x
2011-10-03 19:03
nextleave
Rank: 2
等 级:论坛游民
帖 子:52
专家分:92
注 册:2011-9-12
收藏
得分:0 
赞成五楼的。。。呼呼。。。
2011-10-03 21:33
ckstorm
Rank: 2
等 级:论坛游民
帖 子:32
专家分:90
注 册:2005-10-2
收藏
得分:10 
st->top 就是栈内元素个数,直接表示data[]数组中的位置。比方说第一个元素st->top,0号,data[0];第二个就是st->top++,1号,data[1]。出栈也是一样。
2011-10-03 21:51
快速回复:新手上路,请求帮助~!关于栈的出栈和压栈
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012189 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved