回 帖 发 新 帖 刷新版面

主题:堆栈与结构体的问题

typedef struct{
               int ord;
               postype seat;
               int di;
              }SELEMTYPE;

typedef struct{
           SELEMTYPE *base;
           SELEMTYPE *top;
           int stacksize;
          }*sqstack;

status push(sqstack s,SELEMTYPE e)
{while(s->top-s->base>=s->stacksize)
    {s->base=(SELEMTYPE*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(SELEMTYPE));
     if(!s->base)exit(OVERFLLOW);
     s->top=s->base+s->stacksize;
     s->stacksize+=STACKINCREMENT;
    }
 *s->top++=e;
 return(OK);
}
SELEMTYPE e;
push(s,e);可以实现吗?
有人在吗? 
大家讨论一下啊 
就是说把结构体定义的变量进行栈的超作吗?

回复列表 (共3个回复)

沙发

typedef struct{
               int ord;
               postype seat;
               int di;
              }SELEMTYPE;

typedef struct{
           SELEMTYPE *base;
           SELEMTYPE *top;
           int stacksize;
          }*sqstack;

status push(sqstack s,SELEMTYPE e)
{while(s->top-s->base>=s->stacksize)
    {s->base=(SELEMTYPE*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(SELEMTYPE));
     if(!s->base)exit(OVERFLLOW);
     s->top=s->base+s->stacksize;
     s->stacksize+=STACKINCREMENT;
    }
 *s->top++=e;
 return(OK);
}
SELEMTYPE e;
push(s,e);可以实现吗?
有人在吗? 
大家讨论一下啊 
就是说把结构体定义的变量进行栈的超作吗?

申请了一个空间,再实现一个push操作
执行push操作当然可以
当然是把一个值压入栈中,结构体只是把一些同性质变量集合在一起而已
你不喜欢,全部拿出来也可以~

板凳


postype seat;
是什么意思?[em18]

3 楼

这码貌似是顺序存储结构的栈 
建立空栈 然后压栈?
结构体好复杂

我来回复

您尚未登录,请登录后再回复。点此登录或注册