博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链栈的实现
阅读量:6510 次
发布时间:2019-06-24

本文共 1403 字,大约阅读时间需要 4 分钟。

hot3.png

#include<stdlib.h>

#include<stdio.h>

#include<malloc.h>

typedef int DataType;

typedef struct node{ struct node *next;//指针域 DataType data;//数据域 }Stack;

void initStack(Stack **head);//初始化

int isEmpty(Stack *head);//判非空否

int StackPush(Stack *head,DataType x);//入栈

int StackPop(Stack *head,DataType *x);//出栈

int StackGet(Stack *head,DataType *x);//取栈顶元素

void Destory(Stack *head);//撤销栈

int main(void){ int x,i; Stack *stack; initStack(&stack); for(i=0;i<10;i++) StackPush(stack,i+1); for(i=0;i<10;i++) { StackPop(stack,&x); printf("x=%d\n",x); }

isEmpty(stack);return 0;

}

void initStack(Stack **head){ *head=(Stack *)malloc(sizeof(Stack));//动态申请 (*head)->next=NULL;//将头指针的next域设为空 }

int StackPush(Stack *head,DataType x){ Stack *p; p=(Stack *)malloc(sizeof(Stack)); p->data=x; p->next=head->next; head->next=p; printf("入栈成功\n"); return 0; }

int isEmpty(Stack *head){ Stack *p=head->next; if(p!=NULL){ printf("栈非空\n"); return 1; } printf("栈空\n"); return 0; }

int StackPop(Stack *head,DataType *x){ Stack *p=head->next; if(p==NULL){ printf("链栈已空\n"); return 0; } head->next=p->next; *x=p->data; free(p); printf("出栈成功\n"); return 1; }

int StackGet(Stack *head,DataType *x){ Stack *p; p=head->next; if(p==NULL){ printf("取栈顶元素为空\n"); return 0; }

*x=p->data;return 1;

}

void Destory(Stack *head){ Stack *p,*q; p=head; while(p!=NULL){ q=p; p=p->next; free(q); } }

转载于:https://my.oschina.net/u/2511906/blog/1623292

你可能感兴趣的文章
洗茶,你误会了多少年?
查看>>
贵阳高新区力争打造“千亿级大数据园区”
查看>>
安防众筹不止于卖产品 思维拓展刺激消费
查看>>
OpenSSH曝高危漏洞 会泄露私钥
查看>>
艾特网能获2016APCA用户满意品牌大奖
查看>>
《CCNP TSHOOT 300-135学习指南》——第2章 结构化故障检测与排除进程
查看>>
《Java EE 7精粹》—— 2.5 非阻塞I/O
查看>>
《Python数据科学实践指南》一2.2 字符串
查看>>
《R数据可视化手册》——1.1 安装包
查看>>
《iOS创意程序设计家》——导读
查看>>
spring-aop
查看>>
android RecycleView Adapter简单封装
查看>>
PgSQL · 案例分享 · 递归收敛优化
查看>>
Dart的数据库操作
查看>>
Codeforces 591 B Rebranding【Codeforces Round #327 (Div. 2)】
查看>>
命名难,难于上青天
查看>>
APUE读书笔记-05标准输入输出库(7)
查看>>
23 第一周作业
查看>>
DNS解析偶尔延迟
查看>>
iOS打电话,发短信,发邮件,打开网址
查看>>