美文网首页考研数据结构编程
考研数据结构复习之栈(一)

考研数据结构复习之栈(一)

作者: SundayCoder | 来源:发表于2017-08-26 16:39 被阅读0次

最简单的顺序栈:

#pragma once
#define StackSize 100
typedef char Datatype;
class StackTest
{
public:
    StackTest();
    ~StackTest();
};
typedef struct {
    Datatype stack[StackSize];
    int top;
}Stack;
void InitStack(Stack *S);
int StackLength(Stack S);
int getTopOfStack(Stack *S, Datatype *e);
int PushStack(Stack *S, Datatype e);
int PopStack(Stack *S, Datatype *e);
void ClearStack(Stack *S);


完整代码:

#include "StackTest.h"
#include<iostream>
using namespace std;


StackTest::StackTest()
{
}


StackTest::~StackTest()
{
}

void InitStack(Stack *S)
{
    S->top = 0;
}

int StackLength(Stack S)
{
    return S.top;
}

int getTopOfStack(Stack * S, Datatype * e)
{
    if (S->top==0)
    {
        cout << "栈为空" << endl;
        return -1;
    }
    else
    {
      *e=S->stack[S->top-1];
      return 1;
    }
}

int PushStack(Stack * S, Datatype  e)
{
    if (S->top== StackSize)
    {
        cout << "栈满,不能入栈" << endl;
        return -1;
    }
    else
    {

         S->stack[S->top]=e;
         S->top++;
        return 1;
    }
}

int PopStack(Stack * S, Datatype * e)
{
    if (S->top==0)
    {
        cout << "栈为空,不能出栈" << endl;
        return -1;
    }
    else
    {
        S->top--;
        *e = S->stack[S->top];
        return 1;
    }
}

void ClearStack(Stack * S)
{
    S->top = 0;
}

测试函数:

int main() {
Stack S;
InitStack(&S);
Datatype a[]{'A','B','C','d'};
for (int i = 0; i <sizeof(a)/sizeof(a[0]); i++)
{
PushStack(&S, a[i]);
}
Datatype e;
cout << StackLength(S) << endl;
PopStack(&S,&e);
cout << e << endl;
cout << StackLength(S) << endl;
PopStack(&S, &e);
cout << e << endl;
cout << StackLength(S) << endl;
PopStack(&S, &e);
ClearStack(&S);
cout << StackLength(S) << endl;
cout << e << endl;
cout << StackLength(S) << endl;
PopStack(&S, &e);
cout << e << endl;
cout << StackLength(S) << endl;
PopStack(&S, &e);
cout << e << endl;
cout << StackLength(S) << endl;
system("PAUSE");
return 0;
}

测试结果:


这里写图片描述

相关文章

  • 考研数据结构复习之栈(一)

    最简单的顺序栈: 完整代码: 测试函数: 测试结果:

  • 考研专业课 | 计算机专业基础综合815之严蔚敏《数据结构》考研

    考研计算机专业基础综合815之严蔚敏《数据结构》考研复习重点笔记及考研真题详解 复习笔记【节选自识库学习网,如需转...

  • 数据结构线性表考研真题

    解2 参考资料:《王道数据结构考研复习指导》

  • 数据结构之栈 原理 栈是一种比较常见的数据结构,它的操作可以看做是数组的子集,因为栈只能从栈顶取元素和添加元素,并...

  • Android面试题总结(题目+复习链接)

    数据结构 1.栈实现原理 java数据结构与算法之栈(Stack)设计与实现 - CSDN博客 2.链表实现原理 ...

  • 数据结构之---栈

    数据结构之---栈 顺序栈 内部采用数组实现 结构图; 定义结构体: 函数声明 进栈以及出栈 图示: 其余操作 链...

  • Python实现队列,栈

    通过python设计实现队列以及栈,复习一下数据结构 队列:先进先出 class Stack(object):de...

  • 数据结构复习笔记 - 栈

    如何理解“栈”? 关于“栈” - 模型 堆盘子 后进者先出,先进者后出,这就是典型的“栈”结构 栈是一种“操作受限...

  • 栈和队列

    1、栈 栈是一种先进先出的数据结构。栈顶进栈,栈顶出栈。 数据结构 栈的初始化 进栈 出栈 栈的最小值 2、队列 ...

  • Activity启动模式精讲

    讲解本技术点之前需要准备的技术点回顾 栈数据结构 数据结构图文解析之:栈的简介及C++模板实现 - melonst...

网友评论

    本文标题:考研数据结构复习之栈(一)

    本文链接:https://www.haomeiwen.com/subject/ehfvdxtx.html