数据结构——栈之顺序存储
来源:互联网 发布:java线程池原理 编辑:程序博客网 时间:2024/06/05 19:51
数据结构——栈之顺序存储
栈的顺序存储可以用数组描述,增加一个变量top存储栈顶元素在数组中的下标,下面是基本操作的实现代码:
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>/**栈的顺序存储**/#define Max_Size 100typedef struct Data{char name[10];int age;};typedef struct{Data data[Max_Size];int top;//存储栈顶元素在数组中的下标}Stack;/**初始化空栈**/void InitStack(Stack *S){S->top = 0;}/**判断是否为空栈**/int StackEmpty(Stack S){//为空返回1否则返回0if(S.top==0) return 1;else return 0;}/**返回栈顶元素**/void GetTop(Stack S,Data *d){if(StackEmpty(S)==1)printf("It's an empty stack!");else{Data data = S.data[S.top-1];strcpy(d->name,data.name);d->age = data.age;}}/**向栈顶插入新元素 入栈**/void PushStack(Stack *S,Data d){int top = S->top;if(top<Max_Size){strcpy(S->data[top].name,d.name);S->data[top].age = d.age;S->top++;}else{printf("Error!It's a full stack!\n");}}/**从栈顶删除元素 出栈**/void PopStack(Stack *S,Data *d){if(StackEmpty(*S)==1){printf("It's an empty stack!\n");}else{strcpy(d->name,S->data[S->top-1].name);d->age = S->data[S->top-1].age;S->top--;}}/**清空栈**/void ClearStack(Stack *S){if(StackEmpty(*S)==1){printf("It's already an empty stack!\n");}else{S->top = 0;}}/**打印栈内信息**/void PrintStack(Stack S){if(StackEmpty(S)==1){printf("It's an empty stack!\n");}else{printf("name----age\n");int len = S.top;for(int i =0;i<len;i++){printf("%s %d\n",S.data[i].name,S.data[i].age);}}}void main(){Data d;char name[10];int age;int i=1;Stack S;while(i){printf("1、初始化空栈\t2、入栈\t3、出栈\t4、栈顶元素5、清空栈6、打印信息\n");scanf("%d",&i);switch (i){case 1:InitStack(&S);break;case 2:printf("Input the name: ");scanf("%s",&d.name);printf("Input the age: ");scanf("%d",&d.age);PushStack(&S,d);break;case 3:PopStack(&S,&d);printf("Deleted (%s,%d)\n",d.name,d.age);break;case 4:GetTop(S,&d);printf("Top element is (%s,%d)\n",d.name,d.age);break;case 5:ClearStack(&S);break;case 6:PrintStack(S);break;default:break;}}system("pause");}
0 0
- 数据结构——栈之顺序存储
- 数据结构之共享栈(顺序存储)—改编《大话数据结构》
- 数据结构——队列之顺序存储
- 数据结构之线性表——栈的顺序存储
- 数据结构——栈的顺序存储
- 数据结构之顺序存储
- 数据结构——线性表之顺序存储学习
- 【大话数据结构】——-线性表之顺序存储
- 数据结构——线性表之顺序存储
- 数据结构之线性表——队列的顺序存储
- 常用数据结构之顺序存储的栈
- java 数据结构之 顺序存储结构 栈
- 数据结构之栈的顺序存储表示
- 数据结构之线性表—>顺序存储结构
- 数据结构---栈---顺序存储
- 数据结构——栈之顺序栈
- 数据结构——栈的顺序存储表示
- 数据结构2—Java_栈_顺序存储
- Android Intend FLAG用法整理
- ocata版本vxlan模式配置【ovs】
- 计算机视觉数据集
- 从陆奇就任三个月所为看百度未来
- 情景linux--如何解决read命令产生的硬编码问题
- 数据结构——栈之顺序存储
- win10配置tensorflow
- 栈在C++中的使用
- Struts上传文件
- 运维学习11
- 在一个千万级的数据库查寻中,如何提高查询效率?
- monkeyDevice常用API
- java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式
- poj-2236-Wireless Network