栈的链式存储表示
来源:互联网 发布:mac os 10.13 发布 编辑:程序博客网 时间:2024/06/02 01:41
1 栈的链式表示
栈的链式存储结构称为链栈,是运算受限的单链表。其插入和删除操作只能在表头位置上进行。因此,链栈没有必要像单链表那样附加头结点,栈顶指针top就是链表的头指针。图3-4是栈的链式存储表示形式。
链栈的结点类型说明如下:
typedef struct Stack_Node{ ElemType data ;struct Stack_Node *next ;} Stack_Node ;
2 链栈基本操作的实现
(1) 栈的初始化
Stack_Node *Init_Link_Stack(void){ Stack_Node *top ;top=(Stack_Node *)malloc(sizeof(Stack_Node )) ;top->next=NULL ; return(top) ;}
(2) 压栈(元素进栈)
Status push(Stack_Node *top , ElemType e){ Stack_Node *p ;p=(Stack_Node *)malloc(sizeof(Stack_Node)) ; if (!p) return ERROR; /* 申请新结点失败,返回错误标志 */p->data=e ; p->next=top->next ; top->next=p ; /* 钩链 */return OK;}
(3) 弹栈(元素出栈)
Status pop(Stack_Node *top , ElemType *e)/* 将栈顶元素出栈 */{ Stack_Node *p ;ElemType e ;if (top->next==NULL )return ERROR ; /* 栈空,返回错误标志 */p=top->next ; e=p->data ; /* 取栈顶元素 */top->next=p->next ; /* 修改栈顶指针 */free(p) ; return OK ;}
0 0
- 栈的链式存储表示
- 栈的链式存储表示
- 串的链式存储表示与实现
- 二叉树的表示链式表示和顺序存储3.0
- c++ 栈的链式表示
- 栈的链式存储
- 栈的链式存储
- 栈的链式存储
- 栈的链式存储
- 栈的链式存储
- 栈的链式存储
- 栈的链式存储
- 链式栈的表示和实现
- 栈的链式表示和实现
- 队列的链式表示
- 图的链式表示
- 队列的链式表示
- 栈的链式存储结构
- 剑指offer|反转链表
- c++之pair
- Tomcat配置文件,如何配置默认项目目录
- WSGI的理解(转载)
- 51nod 1005《《大数加法》》
- 栈的链式存储表示
- 在Quick-cocos2d-x中使用sqlite3数据库
- 网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解
- java生成随机字母
- iOS提交程序到Appstore上报错iTunes store operation failed?
- NGUI战斗飘字及界面优化
- Count Numbers with Unique Digits
- C++ 利用make_heap建立小根堆
- esp8266 相关