int StackPush(struct Stack *stack,int data){struct List *tmp = (struct List *)malloc(sizeof(struct List));tmp->data = https://www.isolves.com/it/cxkf/yy/C/2019-11-04/data;tmp->next = stack->head->next;stack->head->next = tmp;stack->size++;//printf("push:%d n",data);return 0;}
4.用数组来实现一个栈
数组本身是一种数据结构,使用数组实现一个栈也是非常简单方便的,大家请看 。
#include "stdio.h"#include "stdlib.h"/*栈的大小*/#define LENGHT (100)struct Stack{int stack_array[LENGHT];unsigned int size;//栈动态长度};struct Stack * StackInit(void){struct Stack *stack = ;stack = (struct Stack*)malloc(sizeof(struct Stack));stack->size = 0;return stack;}int StackPush(struct Stack *stack,int data){if(stack->size >= LENGHT){printf("stack is fulln");return (-1);}stack->stack_array[stack->size] = data;stack->size++;//printf("push:%d size:%dn",data,stack->size);return 0;}int IsStackEmpty(struct Stack *stack){/*如果头指针指向下一个为空,说明栈为空*/if(stack->size == 0)return 1;elsereturn 0;}int StackPop(struct Stack *stack,int *data){stack->size--;if(IsStackEmpty(stack))return -1;*data = https://www.isolves.com/it/cxkf/yy/C/2019-11-04/stack->stack_array[stack->size];//printf("pop:%d size:%dn",*data,stack->size);return 0;}int main(void){int i = 0;struct Stack *stack = ;stack = StackInit;for(i = 0;i<20;i++){StackPush(stack,i);}for(i = 0;i<21;i++){int data = 0;StackPop(stack,&data);printf("%d n",data);}printf("n");return 0;}
5.总结
既然有栈,就会有和栈不一样的数据结构,有一种数据结构叫做队列,栈的数据结构特点是先进后出,队列的数据结构特点是先进先出,有点意思,栈和队列做驱动的同学很少需要自己写代码实现,正常情况下都是SDK集成了方法,直接调用接口就好了,但是写应用的同学,经常要自己实现一个栈或者队列,特别是大企业面试,这些算是非常基础的题目,最好是闭着眼睛就能写出来的那种 。
【End】
【如何轻松使用 C 语言实现一个栈?】
推荐阅读
- 如何在记事本中制作关机程序
- 手把手教你使用阿里云服务器搭建网站全过程(图文教程)
- html meta标签使用及属性的详细分析
- SEM干货:如何确定哪些是恶意点击?
- 如何使用Docker部署MongoDB副本集
- Android代码中是如何下毒的
- 浏览器是如何解析JavaScript的?
- x86与x64的区别?云服务器如何选择操作系统?
- 交换机权限管理混乱,可操作交换机人员少,如何破局?
- 春茶,如何正确且健康的品饮