标题:求助。。。栈的操作。。
取消只看楼主
shenlanlan
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2011-8-25
结帖率:100%
已结贴  问题点数:20 回复次数:2 
求助。。。栈的操作。。
#include<stdio.h>
#include<stdlib.h>

#define MAX 5

typedef struct{
    int *top;
    int *base;
    int size;
}sqstack;

void initstack(sqstack &s){
//    sqnode *p;
    s.base=(int*)malloc(sizeof(sqstack));
    if(s.base!=NULL)
        s.top=s.base;
        
   
}

int push(sqstack s,int e){//元素E入栈S
        *s.top=e;
        s.top++;
        ++s.size;
                return 0;
}

int pop(sqstack s){//元素出栈
    int e;
        s.top--;
    e=*s.top;
        return 0;
}

int gettop(sqstack s,int e){//用E返回栈的栈顶元素
    while(s.size){
        s.top--;
        e=*s.top;
    }
    return e;
}
int main(){
    sqstack s;
    int i,e;
    s.size=0;
    initstack(s);
    printf("现在是元素入栈:");
    for(i=1;i<=MAX;i++){
        scanf("%d",&e);
        push(s,e);
    }
   
    printf("它的栈顶元素是%d.\n",gettop(s,e));
    printf("现在是元素出栈:");
    for(i=1;i<=MAX;i++){
        e=pop(s);
        printf("%3d",e);//问题在这里,在出栈输出后,怎么都是‘0’呀?
    }
    printf("\n");
    return 0;        
}        
   
//希望大家帮我看看,谢谢喽!
搜索更多相关主题的帖子: include return 元素 
2011-11-07 23:34
shenlanlan
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2011-8-25
得分:0 
回复 2楼 绿茶盖儿
改为return e后,出栈输出变成了随机数,问题在哪呢?我刚开始学,请详细说一下,谢谢了。
2011-11-08 22:37
shenlanlan
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2011-8-25
得分:0 
回复 4楼 leizisdu
谢谢你了。
2011-11-11 21:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-354564-1-1.html




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

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