栈的链式存储实现 链式栈 栈头 + 不带头结点的链表 数据类型 typedef int DataType; //结点类型 struct node { DataType data; struct node *next; }; //栈头类型 typedef struct { //指向栈顶结点 struct node *top; //记录栈中元素个数 int n; }LinkStack; 常用操作 1.创建空栈,s->top == NULL LinkStack *create_empty_linkstack() { 1.为栈头在堆区分配空间,用s保存 2.s->top = NULL; 3.s->n = 0; 4.返回s } 2.判空 int is_empty_linkstack(LinkStack *s) {} 3.入栈,类似链表的头插法 int push_linkstack(LinkStack *s,DataType data) { 1.为新结点在堆区分配空间,用temp保存 2.存入数据, 3.通过栈顶指针插入链表中 4.s->n++ } 4.出栈, DataType pop_linkstack(LinkStack *s) { 1.用temp 保存原栈顶的结点首地址 2.取原栈顶结点数据 3.更新栈顶指针 4.释入原栈顶空间 5.s->n--; } 5.获得栈顶元素 DataType get_top_data(LinkStack *s) {}
//head.h
#ifndef __HEAD__H #defin
数据结构之链式栈
最新推荐文章于 2019-08-05 15:41:05 发布
本文介绍了链式栈的实现,包括数据类型定义、链表节点结构、栈头结构,以及创建空栈、判断栈空、入栈、出栈和获取栈顶元素等基本操作的详细步骤。示例代码展示了如何在C语言中实现这些功能。
摘要由CSDN通过智能技术生成