0
点赞
收藏
分享

微信扫一扫

构建栈结构体

青青子衿谈育儿 2022-04-26 阅读 77
c++
#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
#define maxsize 100
//顺序栈结构体定义
typedef int ElemType;
typedef struct Stack
{
    ElemType Stack[maxsize];
    int top;
    //*struct Stack *rear;*//
}Stack;

//初始化
void InitStack (Stack *s)
{
    s->top=0;
}



//判栈栈S是否为空

 int StackEmpty (Stack s)
 {
     if(s.top==0)
        return 1;
     else
        return 0;
 }

//入栈
void StackPush(Stack *s,ElemType a)
{
    if(s->top==maxsize-1)
    {
        exit (0);
    }
    else
    {
    s->top++;
    s->Stack[s->top]=a;
    }
}


//出栈
void StackPop (Stack *s,ElemType *b)
{
    if(StackEmpty (*s))
        printf("空stack");
    else
        *b=s->Stack[s->top--];
}


//获取栈顶元素内容
void GetTop (Stack s,ElemType *b)
{
    if(StackEmpty(s))
        printf("空stack");
    else
        *b=s.Stack[s.top];
}

/*创建一个顺序栈myStack,首先依次向栈压入数据元素1,2,...,10,然后依次输出堆栈中的数据元素并显示。*/

int main()
 {
     int i=1,a;
         Stack myStack;
         InitStack (&myStack);

    for (i=1;i<=10;i++)
    StackPush(&myStack,i);

while(!StackEmpty (myStack))
{
    StackPop(&myStack,&a);
    printf("元素%d\n",a);
}

}

一、实验目的和要求

1)掌握使用CodeBlooks软件上机调试程序的基本方法;

(2)掌握顺序栈的基本操作:初始化、判断栈空、入栈、出栈、获得栈顶元素等运算:

3)用C语言定义描述顺序栈的结构体;

4)用C语言完成顺序栈的初始化InitStack()、判断栈空StackEmpty()、入栈Stack Push()、出栈Stack Pop()、获得栈顶元素GetTop()函数;

5)创建一个顺序栈myStack,首先依次向栈压入数据元素1,2,...,10,然后依次输出堆栈中的数据元素并显示。

二、实验原理

顺序栈的基本操作:顺序栈结构体的定义,顺序栈操作:初始化、判断栈空、入栈、出栈、获得栈顶元素运算。

三、主要仪器设备或材料

PC机,Windows XP操作平台,CodeBlooks

举报

相关推荐

0 条评论