博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stack-- 基于双向链表实现(java实现)--基于数组实现(c实现)
阅读量:5054 次
发布时间:2019-06-12

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

1 //不考虑任何情况的判断   package cn.it.struct; 2  3 public class MyStack
{ 4 private int top=-1; 5 6 private Node
current; 7 8 9 private class Node
{10 private T data;11 12 private Node
next;13 14 private Node
pre;15 16 }17 18 //初始化19 public MyStack(){20 top = -1;21 current = new Node
();22 }23 24 //压Stack25 public boolean push(T data){26 Node
node = new Node
();27 node.data = data;28 current.next = node;29 current = node.pre;30 current = node;31 top++;32 return false;33 }34 35 //出Stack36 public T poll(){37 T data = current.data;38 current = current.pre;39 top--;40 return data;41 }42 }

 

1 #include
2 /* 3 * 4 * 基于arraylist实现 5 * 6 * */ 7 #define STACK_INIT_SIZE 100 8 9 typedef char ele;10 11 typedef struct {12 ele *top;13 ele *base;14 int len;15 }stack;16 17 //初始化18 void init(stack *s){19 s->base=(ele *)malloc(STACK_INIT_SIZE*sizeof(ele));20 if(!s->base)exit(0);21 s->top=s->base;22 s->len=STACK_INIT_SIZE;23 }24 25 //插入26 void push(stack *s,ele e){27 if(s->top-s->base>=s->len){28 s->base=realloc(s->base, s->len + 10 *sizeof(ele));29 if(!s->base){30 exit(0);31 }32 *(s->base+s->len+1)=e;33 s->len=10+s->len;34 }else{35 *(s->base+s->len)=e;36 }37 *(s->top)=e;38 }39 40 //pop41 ele pop(stack *s){42 if(*(s->top)==*(s->base)){
return NULL;}43 (s->base+s->len-1)=NULL;44 s->len--;45 return *(s->top);46 }

 

转载于:https://www.cnblogs.com/mozhuhao/p/4483811.html

你可能感兴趣的文章
清北学堂的小技巧和小收获
查看>>
模型压缩方向一个很牛的paper
查看>>
Android--AsyncTask异步加载详解
查看>>
YARN学习总结
查看>>
C#基础温习(2):温习控制台程序(二)
查看>>
一些文章
查看>>
注解@ResponseBody的作用
查看>>
java main函数不执行?
查看>>
iOS 更好用的打Log方式-显示文件名、行数
查看>>
从MS SQL删除大数据说开去
查看>>
NOVO SOP (SOP简介及历史)
查看>>
windows7+docker添加php扩展
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>
今时不同往日:VS2010十大绝技让VS6叹服
查看>>
设计器 和后台代码的转换 快捷键
查看>>
在线视频播放软件
查看>>
用代码生成器生成的DAL数据访问操作类 基本满足需求了
查看>>
28初识线程
查看>>
Monkey测试结果分析
查看>>