数据结构之链栈
来源:互联网 发布:java编写乘法表 编辑:程序博客网 时间:2024/06/06 02:05
本次为大家带来的是数据结构中的链栈,链栈就是存储结构是链式的
链栈的定义
typedef struct node{int data;struct node*next;}node;node*top;
和单链表的定义并无二致,仅仅多了一个top指针,关键在于使用者如何使用的。
链栈包括:创建链表(和单链表的头插法一样),压栈(pushstack),弹栈(popstack),打印(print)
废话不多说,看代码:
#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node*next;}node;node*c_linkstack(){ node*top,*p; int a,n; top=NULL; printf(" the num:");scanf("%d",&n); if(n>0) { printf("the value:"); while(n>0) { scanf("%d",&a); p=(node*)malloc(sizeof(node)); p->data=a; p->next=top; top=p; n--; } } return top;}node*pushstack(node*top,int x){ node*p; p=(node*)malloc(sizeof(node)); p->data=x; p->next=top; top=p; return top;}node*popstack(node*top,int*p){ node*q; if(top!=NULL) { q=top; *p=top->data; top=top->next; free(q); } return top;}void print(node*top){ node*p; p=top; if(p!=NULL) { printf("the linkstack:"); while(p!=NULL) { printf("%4d",p->data); p=p->next; } } else puts("the linkstack is empty");}int main(){ int x=0; node*a,*b; a=c_linkstack(); print(a); printf("\n\ninput a linkstacking number: ");scanf("%d",&x); a=pushstack(a,x); print(a); b=popstack(a,&x); printf("\n\noutput a linkstacking number:%d\n",x); print(b); return 0;}
总结
本次对数据结构链栈的编码,相对来说还是容易一些的,毕竟都是以链表为基础,所以学好基础是进一步向上扩展的第一步,温故而知新,可以为师矣。
阅读全文
0 0
- 数据结构之链栈
- 数据结构之链栈
- 数据结构之链栈
- 数据结构之链栈
- 数据结构之链栈
- 数据结构之链栈
- 数据结构之链栈
- 数据结构之链栈
- 数据结构之链栈实现
- 数据结构之链栈07
- 数据结构之链栈(参考整理严蔚敏数据结构)
- 数据结构——栈之链栈
- 数据结构之链栈 C++实现
- 简单数据结构的实现之链栈
- 数据结构学习之链栈c++实现
- 数据结构C语言实现之链栈
- 数据结构之 链栈的实现
- 【数据结构】之链栈的java实现
- JAVA开发技术体系
- css的鼠标手势大全
- Scikit-learn使用总结
- Android Paint相关
- Android 滚动抽奖的实现
- 数据结构之链栈
- 剑指offer 15--链表中倒数第n个节点
- linux下文件夹的创建、复制、剪切、重命名、清空和删除命令
- 欢迎使用CSDN-markdown编辑器
- Freemarker模板自动生成java代码
- facebook和twitter三方登录分享的实现
- 如何查询MySql日志
- ORB算法讲解的通俗易懂
- iOS UILabel换行同时修改字体大小颜色