数据结构的链栈
来源:互联网 发布:jquery调用js函数 编辑:程序博客网 时间:2024/06/06 02:36
# include <stdio.h># include <stdlib.h>typedef char NodeData;//链栈typedef struct Node{ NodeData data; struct Node *next;}StackNode;typedef struct{ StackNode *top;}LinkStack;/*置栈空*/void initStack(LinkStack *ls){ls->top=NULL;}/*判栈空*/int isStackEmpty(LinkStack *ls){ return ls->top==NULL;}/*进栈*/void pushStack(LinkStack *ls,NodeData nodedata){ StackNode *p; p=(StackNode *)malloc(sizeof(StackNode)); p->data=nodedata; p->next=ls->top; ls->top=p;}/*出栈*/NodeData popStack(LinkStack *ls){ StackNode *p=ls->top; NodeData popNode=ls->top->data; ls->top=ls->top->next; free(p); return popNode;}/*打印栈*/void printStack(LinkStack *ls){ int i=0; StackNode *node; node=ls->top; while(node->next!=NULL) { node=node->next; printf("%d = %c\n",i,node->data); i++; }}/* LinkStack结构类型的定义是为了方便在函数体中修改top指针本身通过修改指向LinkStack的top指针来控制入栈和出栈 *//* 是通过指针参数修改指针所指内容的典型用法 */void main(){ LinkStack *ls; char inData; ls=(LinkStack *)malloc(sizeof(LinkStack)); initStack(ls); //入栈 printf("请输入data\n"); while(inData != '\n') { scanf("%c",&inData); pushStack(ls,inData); printf("%c\n",inData); } printf("linkStack:\n"); //打印栈元素 printStack(ls); printf("pop stack\n"); //出栈 popStack(ls); printStack(ls);}
阅读全文
0 0
- 数据结构的链栈
- 简单数据结构的实现之链栈
- 数据结构 栈的链表实现法
- 数据结构---链栈的基本操作
- 数据结构链栈的各种操作
- 数据结构之 链栈的实现
- 【数据结构】之链栈的java实现
- <数据结构>链栈的C语言实现
- 数据结构 链栈的基本操作
- 【数据结构】栈的链表实现
- 数据结构之链栈的实现
- 数据结构-----栈的链表实现
- 数据结构---栈的链表实现
- 【数据结构】栈-链表的实现
- 【数据结构之链栈的基本运算】
- 数据结构之链栈的所有操作
- 【数据结构】栈的链表实现
- 【数据结构】之链栈的java实现
- 对pytroch中torch.autograd.backward的思考
- Java的流程控制
- struts2_day01_10_struts2常量配置
- 【SQL改写】notexists-leftjoin(distinct)whereisnull改写_标量子查询
- Spring Boot热部署的实现
- 数据结构的链栈
- android 旋转动画
- java基础经典总结
- 读书笔记——深入理解JAVA虚拟机(2)
- Android倒计时 CountDownTimer的使用
- xcode9元素约束设置
- Linux学习
- SSH协议详解
- CTEX如何添加参考文献?