圣狄雅哥 发表于 2018-1-28 16:59:46

数据结构与算法第24讲销毁链表这里好像有问题

本帖最后由 圣狄雅哥 于 2018-1-29 10:41 编辑

DestroyStack(sqStack *s){
int i, len;
len = s->stackSize;
for( i=0; i < len; i++ ){
free( s->base );
s->base++;
}
s->base = s->top = NULL;
s->stackSize = 0;
}

圣狄雅哥 发表于 2018-1-28 21:25:53

栈底base是指针,删除了那还怎么指向下一个结点呢

独孤呆博 发表于 2018-1-30 22:37:49

同问,本来理解这里的s->base是指针对应的元素,在后面又看见要++就不知道是什么了{:10_266:}

圣狄雅哥 发表于 2018-1-31 14:53:01

独孤呆博 发表于 2018-1-30 22:37
同问,本来理解这里的s->base是指针对应的元素,在后面又看见要++就不知道是什么了

s->base应该是指针,相当于(s->base)++,就指向下一个元素的位置了

人造人 发表于 2018-1-31 20:16:10

DestroyStack(sqStack *s)好像真的有问题
@小甲鱼


typedef int ElemType;

typedef struct
{
        ElemType *base;
        ElemType *top;
        int stackSize;
}sqStack;


#define STACK_INIT_SIZE 100

initStack(sqStack *s)
{
        s->base = (ElemType *)malloc( STACK_INIT_SIZE * sizeof(ElemType) );
        if( !s->base )
                exit(0);

        s->top = s->base;   // 最开始,栈顶就是栈底
        s->stackSize = STACK_INIT_SIZE;
}

#define SATCKINCREMENT 10



Push(sqStack *s, ElemType e)
{
    // 如果栈满,追加空间
    if( s->top – s->base >= s->stackSize )
    {
      s->base = (ElemType *)realloc(s->base, (s->stackSize + STACKINCREMENT) * sizeof(ElemType));
      if( !s->base )
            exit(0);

      s->top = s->base + s->stackSize;            // 设置栈顶
      s->stackSize = s->stackSize + STACKINCREMENT; // 设置栈的最大容量
    }

    *(s->top) = e;
    s->top++;
}


Pop(sqStack *s, ElemType *e)
{
        if( s->top == s->base )// 栈已空空是也
                return;

        *e = *--(s->top);
}


ClearStack(sqStack *s)
{
        s->top = s->base;
}


DestroyStack(sqStack *s)
{
        int i, len;

        len = s->stackSize;

        for( i=0; i < len; i++ )
        {
                free( s->base );
                s->base++;
        }

        s->base = s->top = NULL;
        s->stackSize = 0;
}


int StackLen(sqStack s)
{
        return(s.top – s.base);// 初学者需要重点讲解
}

小甲鱼 发表于 2018-1-31 23:04:02

人造人 发表于 2018-1-31 20:16
DestroyStack(sqStack *s)好像真的有问题
@小甲鱼

已经 MARK DOWN,这个系列重录时必须改正错误。

人造人 发表于 2018-2-1 00:05:19

小甲鱼 发表于 2018-1-31 23:04
已经 MARK DOWN,这个系列重录时必须改正错误。

页: [1]
查看完整版本: 数据结构与算法第24讲销毁链表这里好像有问题