数据结构--顺序栈的实现(C语言)
2017-10-30 01:24
246 查看
数据结构--顺序栈的实现(C语言)
题目:设从键盘输入一整数的序列:a1,a2,a3,......,an,试编写算法的实现:用栈结构存储输入的整数,当ai不等于-1时,将ai进栈;当ai
== -1 时,输出栈顶整数并出栈。算法应对异常情况(入栈满)给出相应的信息。
一栈的表示:
二栈的初始化
算法步骤:
1)栈底及栈顶的索引都是0.
2)栈的初始长度为0.
算法描述:
三.压栈
压栈的算法步骤:
1)判断栈的长度是否大于栈的最大容量。
2)栈顶索引上移加1.
3)将栈元素压入到栈中。
4)栈的长度加1.
压栈的算法描述:
压栈的算法分析:
<
b791
span style="color:#333333;background:#FFFFFF;">时间复杂度为:T(o) = 1;
四.出栈:
出栈的算法步骤:
1) 判断栈中是否存在元素。
2) 输出栈元素。
3) 栈顶索引下移减1.
4) 栈的长度减1.
出栈的算法描述:
出栈的算法分析:
时间复杂度为:T(o) = 1;
Main函数:
执行结果如下:
分享(share )是快乐的,也是见证个人的成长历程,文章主要为平时学习积累,基于自身认知不足之处在所难免,也恳请大家指正,共同进步。
题目:设从键盘输入一整数的序列:a1,a2,a3,......,an,试编写算法的实现:用栈结构存储输入的整数,当ai不等于-1时,将ai进栈;当ai
== -1 时,输出栈顶整数并出栈。算法应对异常情况(入栈满)给出相应的信息。
一栈的表示:
#include <stdlib.h> #include <stdio.h> #define MAX 10 typedef int ElemType; typedef struct Stack{ ElemType data[MAX]; int bottom; //栈底 int top; //栈顶 int length; //栈的大小 }Stack, *pStack; |
算法步骤:
1)栈底及栈顶的索引都是0.
2)栈的初始长度为0.
算法描述:
//初始化栈 void init(pStack stack){ stack->top=stack->bottom=0; stack->length = 0; } |
压栈的算法步骤:
1)判断栈的长度是否大于栈的最大容量。
2)栈顶索引上移加1.
3)将栈元素压入到栈中。
4)栈的长度加1.
压栈的算法描述:
//压栈 int push(pStack stack,int num){ if(stack->length==MAX ){ printf("栈满溢出,添加失败.\n"); return 0; } stack->top++; stack->data[stack->top]=num; stack->length++; printf("%d入栈\n",num); return 1; } |
<
b791
span style="color:#333333;background:#FFFFFF;">时间复杂度为:T(o) = 1;
四.出栈:
出栈的算法步骤:
1) 判断栈中是否存在元素。
2) 输出栈元素。
3) 栈顶索引下移减1.
4) 栈的长度减1.
出栈的算法描述:
//出栈 int pop(pStack stack){ if(stack->length<=0){ printf("没有可输出的元素\n"); return 0; } printf("%d出栈\n",stack->data[stack->top]); stack->length--; stack->top--; return stack->data[stack->top]; } |
时间复杂度为:T(o) = 1;
Main函数:
int main(){ ElemType num; Stack s; init(&s); while(1){ printf("请输入一个栈元素:"); scanf("%d", &num); if(num == -1){ pop(&s); continue; } push(&s, num); } return 0; } |
分享(share )是快乐的,也是见证个人的成长历程,文章主要为平时学习积累,基于自身认知不足之处在所难免,也恳请大家指正,共同进步。
相关文章推荐
- (C语言队列的顺序实现(数据结构十)
- 【数据结构】C语言实现顺序表(动态顺序表)
- C语言数据结构之顺序数组的实现
- 数据结构 查找及排序算法、直接插入排序及顺序查找(c语言实现)
- 数据结构学习笔记-栈的顺序存储(C语言实现)
- 数据结构 c语言实现 顺序表(Sequential List)
- C语言实现数据结构中的顺序栈
- 【数据结构】实现顺序表(c语言)
- (C语言)串定长顺序存储实现(数据结构十二)
- 数据结构--线性表.顺序表(C语言实现)
- (C语言)串定长顺序存储实现(数据结构十二)
- C语言数据结构之:顺序表的实现
- 数据结构(严蔚敏)之三——顺序栈之c语言实现
- 数据结构 顺序表的实现(C语言)
- (C语言)单链表的顺序实现(数据结构一)
- 数据结构 - 线性表(顺序表)C语言代码实现-处理整型数据(附详细解释)。 _清风明月
- (C语言)单链表的顺序实现(数据结构一)
- 【数据结构】C语言实现顺序链表
- 数据结构 c语言实现顺序队列(输数字入队,字符出队)
- 数据结构 c语言 顺序查找算法(linux下实现)