栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构、C语言 顺序栈

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构、C语言 顺序栈

一、代码段
#include "stdio.h"
#define  MAXLEN  100             
typedef  int  DataType;           
typedef  struct                  
{   DataType   data[MAXLEN];     
    int  top;                    
}SeqStack;

void InitStack(SeqStack *S)//初始化函数
{
	S->top=-1;//初始化的顺序栈为空
}

int EmptyStack(SeqStack *S)//判断栈空函数
{
	if(S->top==-1)//栈为空
	    return 1;
	else
	    return 0;
}

int FullStack(SeqStack *S)//判断栈满函数
{
	if(S->top==MAXLEN-1)//栈为满
	    return 1;
	else
	    return 0;
}

int Push(SeqStack *S,DataType x)//进栈操作函数
{
	if(FullStack(S))//调用FullStack(s),判断栈是否为满
	{
		printf("栈满,不能近栈!");
		return 0;//栈满,不能近栈
	}   
	else
	{
		S->top++;
		S->data[S->top]=x;
	    return 1;
	}
}

int Pop(SeqStack *S,DataType *x)//出栈操作函数
{
	if(EmptyStack(S))//调用判空函数EmptyStack(s),判断栈是否为空
	{
		printf("栈空,取栈顶元素失败!");
		return 0;//栈满,不能出栈
	}   
	else//栈不为空
	{
		*x=S->data[S->top];
		S->top--;
	    return 1;
	}
}

int GetTop(SeqStack *S,DataType *x)//取栈顶元素函数
{
	if(EmptyStack(S))//调用判空函数EmptyStack(s),判断栈是否为空
	{
		printf("栈空,取栈顶元素失败!");
		return 0;//栈满,不能出栈
	}   
	else//栈不为空
	{
		
		*x=S->data[S->top];
	    return 1;
	}
}

void  Menu()                                    
{   
    printf("n                  顺序栈的各种操作");
    printf("n==================================================");  
    printf("n|               1——初始化栈                    |");
    printf("n|               2——入栈操作                    |");
    printf("n|               3——出栈操作                    |");
    printf("n|               4——求栈顶元素                  |");
    printf("n|               0——返回                        |");
    printf("n=================================================="); 
    printf("n请输入菜单号(0-4):");   
}

main()
{
   int i,n,flag;
   SeqStack S;
   DataType x;
   char  ch1,ch2,a; 
   ch1='y';
   while(ch1=='y'||ch1=='Y') 
   {  Menu();
      scanf("%c",&ch2);
      getchar();
      switch(ch2)
      {
         case  '1':          
             InitStack(&S);
             printf("栈的初始化完成!");
             break;
         case  '2':
             printf("请输入要入栈的元素个数:");
             scanf("%d",&n);
             printf("请输入%d个入栈的整数:",n); 
             for(i=0;i 
二、程序运行结果 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号