C语言-数据结构-创建栈
来源:互联网 发布:php制作动态网页作品 编辑:程序博客网 时间:2024/06/07 01:44
#include <stdio.h>
#include <stdlib.h>
#define maxsize 100
///创建栈
typedef int data;
typedef struct
{
data *base; //栈底
data *top; //栈顶
int stacksize; //栈大小
}stack;
//创建栈(初始化)
void init(stack *s)
{
//给base开辟内存
s->base = (stack*)malloc(maxsize*sizeof(stack));
if(!s->base)
{
printf("error!");
exit(1);
}
s->top = s->base;
s->stacksize=maxsize;
}
//判断空栈 空/1
int null(stack *s)
{
return s->top == s->base;
}
//判断满栈
int full(stack *s)
{
return s->top - s->base == maxsize;
}
//进栈
void inpush(stack *s,data x)
{
if((full(s)))
{
printf("full"); //上溢
exit(1);
}
//将栈顶指针加一后再入栈;
*((s->top)++) = x;
}
//出栈
void pop(stack *s)
{
if(null(s))
{
printf("null"); //下溢
exit(1);
}
//栈顶指针-1
--s->top;
}
//取栈顶元素
/*
data top(stack *s)
{
if(null(s))
{
printf("null");
exit(1);
}
return *(s->top-1);
}*/
//输出元素
void output(stack *s)
{
while(!null(s))
{
pop(s);
printf("%d ",*s->top);
}
}
//输入元素
void input(stack *s)
{
int i,n;
data x;
//printf("please enter index:");
//scanf("%d",&n);
printf("please input element:");
//for(i=0;i<n;i++)
for(i=1;;i++)
{
scanf("%d",&x);
inpush(s,x);
if(getchar()=='\n')
break;
}
}
int main()
{
stack p,*s=&p;
init(s);//创建
input(s); //输入进栈内容
output(s); //输出出栈内容
return 0;
}
#include <stdlib.h>
#define maxsize 100
///创建栈
typedef int data;
typedef struct
{
data *base; //栈底
data *top; //栈顶
int stacksize; //栈大小
}stack;
//创建栈(初始化)
void init(stack *s)
{
//给base开辟内存
s->base = (stack*)malloc(maxsize*sizeof(stack));
if(!s->base)
{
printf("error!");
exit(1);
}
s->top = s->base;
s->stacksize=maxsize;
}
//判断空栈 空/1
int null(stack *s)
{
return s->top == s->base;
}
//判断满栈
int full(stack *s)
{
return s->top - s->base == maxsize;
}
//进栈
void inpush(stack *s,data x)
{
if((full(s)))
{
printf("full"); //上溢
exit(1);
}
//将栈顶指针加一后再入栈;
*((s->top)++) = x;
}
//出栈
void pop(stack *s)
{
if(null(s))
{
printf("null"); //下溢
exit(1);
}
//栈顶指针-1
--s->top;
}
//取栈顶元素
/*
data top(stack *s)
{
if(null(s))
{
printf("null");
exit(1);
}
return *(s->top-1);
}*/
//输出元素
void output(stack *s)
{
while(!null(s))
{
pop(s);
printf("%d ",*s->top);
}
}
//输入元素
void input(stack *s)
{
int i,n;
data x;
//printf("please enter index:");
//scanf("%d",&n);
printf("please input element:");
//for(i=0;i<n;i++)
for(i=1;;i++)
{
scanf("%d",&x);
inpush(s,x);
if(getchar()=='\n')
break;
}
}
int main()
{
stack p,*s=&p;
init(s);//创建
input(s); //输入进栈内容
output(s); //输出出栈内容
return 0;
}
阅读全文
0 0
- C语言-数据结构-创建栈
- c语言数据结构之栈
- 数据结构C语言实现栈
- 数据结构.栈(C语言实现)
- 数据结构--链式栈(C语言)
- C语言数据结构-顺序栈
- 数据结构_3:栈:C语言
- 数据结构---栈C语言实现
- 数据结构C语言链栈
- 数据结构栈C语言实现
- 链式栈 C语言数据结构
- C语言实现数据结构中的顺序栈
- C语言实现数据结构中的链栈
- C语言实现堆栈(栈)的数据结构
- 数据结构之c语言栈的演示
- 数据结构C语言实现之顺序栈
- 数据结构C语言实现之链栈
- 数据结构(C语言描述)读书笔记之栈
- <测试架构师修炼之道>读书笔记1
- hdu 3341 Lost's revenge
- 将输入的密码变成*的代码
- 输出正整数二进制的位置(难度:半颗星)
- TCP组包问题
- C语言-数据结构-创建栈
- 基于jsp,servlet的简单图书馆管理软件
- 使用Java方式ftp下载
- CSUOJ-1044: 扑克排序
- redis ssm遇到的小问题2
- 欢迎使用CSDN-markdown编辑器
- javascript-小数四舍五入
- Struts2简介第一个Struts2Demo(一)
- itchat 微信接口不能直接发消息给指定用户