Code前端首页关于Code前端联系我们

堆栈数组 C 代码实现和堆栈链表数据结构

terry 2年前 (2023-09-27) 阅读数 65 #数据结构与算法

堆栈数组

#include#include#include # Define maxn 10000//节点设计 typedef struct stack{ int 数据[maxn]; int top;}stack;//创建stack *init(){ stack *s=(stack *) malloc(的大小(堆栈));if(s==NULL){printf( (堆叠)) “分配内存空间失败”); memset(s->数据,0, sizeof (s->数据));可以查一下百度百科 https://baike.baidu.com/item/memset/4747579?fr=aladdin s->top=0; //栈顶和栈底均为0(表示为空) return s;}//push为空ypush(stack *s, int data){ s->data[s->top] =data;s ->top ++;}//出栈出栈void pop(stack *s){ if(s->top!=0){ s->数据[s->top]=0; //让它返回0,模拟没有初始化                s->top--; print_stack(stack *s){ for(int n=s->top-1;n>=0;n--){  printf( "%d\t",s->数据[n]); } “\n” ; int 输入[5]={11,22,33,44,55}; //模拟5个输入数据 for(int i=0;i计数 = 0; p->顶部 = NULL; 返回 p;}//按下堆栈推送Link_Stack *Push_stack(Link_Stack *p, int elem){ if (p == NULL) 返回NULL; 节点 *temp; temp=(节点*)malloc)sizeof(节点)); //temp = 新节点; temp->data = elem; temp->next = p->top ; p->top = temp; p->count++; p;}//出栈弹出Link_Stack *Pop_stack (Link_Stack *p){ 节点 *temp; temp = p->top; if (p->顶部== NULL){);   返回p;}其他 {     p->上 = p->上->下一个; free(temp); //删除temp; p->count --; 返回 p;}}//跳过堆栈:打印堆栈中所有元素 int show_stack (Link_Stack * p) { 节点 *temp; temp = p->top; if (p->top == N ULL) { printf(""); “错误:堆栈为空”);   返回 0;                                     != NULL) { printf("%d\t", 温度->数据); printf("\n"); 返回 0;}} main() { //用main函数测试函数 Link_Stack *p; p = Create_stack(); int n = 5 ) /// //通过顺序压入堆栈来创建整个堆栈 /////////////// for(inti=0;i

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门