【数据结构】栈的基本操作
来源:互联网 发布:java final 变量 编辑:程序博客网 时间:2024/05/18 01:17
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int SElemType;
typedef struct{
SElemType *base;
SElemType *top;
intstacklen;
}SqStack;
//建立空栈
int InitStack(SqStack &S,intn){
S.base=(SElemType*)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!S.base)exit(OVERFLOW);
S.top=S.base;
S.stacklen=n;
returnOK;
}
//输出栈
int printstack(SqStack &S,intn)
{
int*p;
printf("当前的栈为:\n");
printf("---------------------------------------------------------\n");
for(p=S.base;p<S.base+S.stacklen;p++)
printf("%d ",*p);
printf("\n");
printf("---------------------------------------------------------\n");
returnOK;
}
//给栈充入元素
int NewStack(SqStack &S,intn){
inti;
printf("请输入%d个整数:\n",n);
for(i=1;i<=S.stacklen;i++)
{scanf("%d",S.top);
S.top++;
}
printstack(S,S.stacklen);
printf("\n");
returnOK;
}
//删除元素
int Pop(SqStack &S){
--S.top;
--S.stacklen;
printstack(S,S.stacklen);
returnOK;
}
//返回栈顶元素
int GetTop(SqStack &S){
printf("栈顶元素为:%d\n",*(S.top-1));
returnOK;
}
//插入元素
int Push(SqStack &S){
printf("请输入新的栈顶元素:\n");
scanf("%d",S.top);
S.top++;
S.stacklen++;
printstack(S,S.stacklen);
printf("\n");
returnOK;
}
//查找元素
int Seek(SqStack &S,int x)
{
inti;
int*p;
for(p=S.base,i=1;p<S.base+S.stacklen,i<=S.stacklen;p++,i++)
if(*p==x)
printf("这是第%d个元素\n",i);
returnOK;
}
void main(){
intn;
SqStack S;
printf("请输入要充入栈的元素个数:\n");
scanf("%d",&n);
InitStack(S,n);
NewStack(S,n);
printf("========================菜单=======================\n");
printf("= 1.插入元素 =\n");
printf("= 2.删除元素 =\n");
printf("= 3.返回栈顶元素 =\n");
printf("= 4.查找栈元素 =\n");
printf("= 5.退出操作 =\n");
printf("====================支持乱序选择===================\n");
intselect,flag=1;
while(flag){
printf("\n请按照菜单选择操作选项:\n");
scanf("%d",&select);
switch(select)
{
case1:Push(S);break;
case2:Pop(S);break;
case3:GetTop(S);break;
case4:printf("请输入要查找的元素:\n");
scanf("%d",&n);
Seek(S,n);break;
case5:flag=0;break;
default:printf("enter data error!\n");
}
}
}
- 【数据结构】 栈的基本操作
- 数据结构栈的基本操作
- 栈的基本操作-数据结构
- 【数据结构】栈的基本操作
- [数据结构]栈的基本操作
- 数据结构--栈的基本操作
- 数据结构--栈的基本操作
- 数据结构:栈的基本操作
- 数据结构-栈的基本操作
- 数据结构--栈的基本操作
- 栈的简单基本操作(数据结构)
- 数据结构---链栈的基本操作
- 数据结构--顺序栈的基本操作
- 数据结构 顺序栈的基本操作
- 数据结构 共用栈的基本操作
- 数据结构 链栈的基本操作
- 数据结构——栈的基本操作
- 数据结构第三章栈的基本操作
- javascript 权威指南——笔记2
- 从头认识java-7.3 接口怎样解耦?
- 求生之路正版2140文件备份
- 数组的优化循环展开与分割
- 32.Oracle数据库SQL开发之 SQLPlus使用——断开数据库并退出SQLPLUS
- 【数据结构】栈的基本操作
- java使用ScheduledExecutorService定时任务
- Ubuntu中PHP如何开启错误提示输出?
- MyISAM InnoDB 区别
- 链表逆序和链表翻转
- HDU 1029 Ignatius and the Princess IV
- textarea: 保留textarea中的换行,将源样式显示在页面
- 利用NuSoap开发WebService(PHP) 分类: php 2010-09-08 12:00 5832人阅读 评论(1) 收藏 举报 webservicephpsoapstringencod
- APK文件处理