标题:求助。。。栈的操作。。
只看楼主
Sv少
Rank: 3Rank: 3
来 自:山东青岛
等 级:论坛游侠
威 望:1
帖 子:53
专家分:168
注 册:2011-11-7
得分:0 
#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(int));
    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;
    e=*--s.top;
    printf("%7d",e);
    return e;
}

int gettop(sqstack s,int e){//用E返回栈的栈顶元素
    if(s.size>0){

        e=*(s.top-1);
    }
    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;        
}        
可以通过引用来改变主函数的栈的内容

Sv少  run
2011-11-12 20:53
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
得分:0 
支持
2011-11-15 17:34



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




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

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