青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。

一方面用于学习记录与分享,

另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。

如有侵权,请留言作删文处理。

课程视频链接:

数据结构与算法基础–第05周08–3.3栈的表示和实现4–3.3.2栈的顺序表示和实现3–顺序栈操作2

【Week05】08_顺序栈的操作2

顺序栈判断栈是否为空

青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记_第1张图片

Status StackEmpty(SqStack S){
	// 若栈为空,返回 TRUE;
    // 若栈不为空,则返回 FALSE
    if(S.top == S.base){
        return TRUE;
    }
    else{
        return FALSE;
    }
}

求顺序栈长度

青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记_第2张图片

int StackLength(SqStack S){
        return (S.top - S.base);
}

清空顺序栈

青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记_第3张图片

int ClearStack(SqStack S){
	if(S.base){
        S.top = S.base;
    }
    return OK;
}
销毁顺序栈
Status DestroyStack(SqStack& S){
	if(S.base){
        delete S.base;
        S.stacksize = 0;
        S.base = NULL;
        S.top = NULL;
    }
    return OK;
}
顺序栈的入栈

青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记_第4张图片

(1) 判断是否栈满,若满则出错(上溢)

(2) 元素 e 压入栈顶

(3) 栈顶指针加 1

Status Push(SqStack& S, SElemType e){
    // 判断栈满
    if((S.top - S.base) == S.stacksize)
        return ERROR;
    *S.top ++ = e;
    // 等价于
    // *S.top = e;
    // S.top++;
    return OK;    
}

你可能感兴趣的:(【数据结构与算法】王卓老师,学习,笔记,java)