#include <iostream> #include <malloc.h> #include<conio.h> //定义节点 typedef char ElemType; typedef struct Node{ ElemType data; struct Node *next; } Stack; /* *栈S指向一个没有数据的节点 */ void Init(Stack *&S){ S=(Stack *)malloc(sizeof(Stack));//分配头结点 S->next=NULL; } /* *销毁栈 */ void Destroy(Stack *&S){ Stack *p=S->next; while (p!=NULL){ free(S); S=p; p=p->next; } } int Length(Stack *s){ int i=0; s=s->next; while (s!=NULL){ i++;s=s->next; } return i; } int StackEmpty(Stack *s){ return(s->next==NULL); } /* *将数据压栈,压到头结点下面 */ void Push(Stack *&S,ElemType e){ Stack *p=(Stack *)malloc(sizeof(Stack)); p->data=e; p->next=S->next; S->next=p; } /* *数据出栈,出栈的数据放在e里面 */ int Pop(Stack *&S,ElemType &e){ Stack *p; if (S->next==NULL) //栈空的情况 return 0; p=S->next; //p指向第一个数据结点 e=p->data; S->next=p->next; free(p); return 1; } /* *获取顶端数据,数据放在e里面 */ int GetTop(Stack *S,ElemType &e){ if (S->next==NULL) return 0; e=S->next->data; return 1; } void Display(Stack *S){ S=S->next; while (S!=NULL){ std::cout<<S->data; S=S->next; } std::cout<<std::endl; } int main(){ Stack *L; char e; Init(L); Push(L,'a'); Push(L,'b'); Display(L); Pop(L,e); std::cout<<e<<std::endl; Display(L); Push(L,'c'); Display(L); Pop(L,e); Pop(L,e); Display(L); Push(L,'d'); Display(L); getche(); return 1; }
运行结果:
ba
b
a
ca
d
相关推荐
"数据结构--栈和数组--思维导图.pdf" 数据结构是计算机科学中的一个重要概念,栈和数组是数据结构中两个非常重要的概念。本文将对栈和数组进行详细的解释,并提供相关的思维导图。 栈是一个只允许在一端进行插入和...
在众多的数据结构中,栈是一种非常基础且重要的结构,它遵循“后进先出”(Last In First Out,简称LIFO)的原则。在本资料“数据结构--栈的C语言实现.zip”中,我们将探讨栈的概念、操作以及如何用C语言来实现它。 ...
数据结构--栈的实现(链栈)--带头节点。
数据结构--栈与队列.cpp
数据结构--栈与队列的应用 栈是一种常用的数据结构,它是一种后进先出的数据结构,即最后入栈的元素最先出栈。栈的应用非常广泛,如解决递归问题、实现深度优先搜索、实现括号匹配等。 在栈的应用中,我们需要设计...
Educoder题目:数据结构-栈基本运算的实现及其应用答案解析.md
在这个主题中,我们专注于栈(Stack)这一特殊的数据结构。栈被称为“后进先出”(Last In, First Out,简称LIFO)的数据结构,因为它的工作原理类似于日常生活中的堆叠物品:最后放入的物品最先被取出。下面我们将...
在这个主题中,我们将专注于栈(Stack)这一特殊的数据结构,以及它的实现算法。栈被誉为“后进先出”(Last In, First Out,简称LIFO)的数据结构,意味着最后存入的数据将首先被取出。 栈在许多计算问题中都有...
标题“数据结构-栈.zip_数据结构-栈”暗示了这个压缩包文件主要包含了关于数据结构中栈的讲解和示例。通过解压并分析其中的文件,我们可以进一步了解栈的基本概念和操作。 “栈测试.cpp”很可能是一个用C++编写的源...
栈是一种特殊的数据结构,被称为“后进先出”(LIFO)结构,这意味着最后加入栈的元素将首先被移除。在本主题中,我们将探讨如何使用链式结构来实现栈,并了解其基本操作。 首先,我们需要理解链式栈的概念。与数组...
数据结构---栈和队列之共享栈(C语言)完整代码,可以运行
数据结构 -- C语言版 -- 栈的部分实现代码(栈的实现、栈的应用),详细介绍参考数据结构--栈的系列博文。链接为:https://blog.csdn.net/songshuai0223/category_9742561.html。
讲述数据结构中关于栈和队列的ppt信息,讲述栈的定义,销毁等问题
CS221 数据结构-全套 PPT 课件 1-引言.ppt 2-线性表.pdf 2-线性表.ppt 3-栈.pdf 3-栈.ppt 4-队列.pdf 4-队列.ppt 数据结构-第二部分.pdf 数据结构-第二部分.ppt 数据结构-第三部分.pdf 数据结构-第三部分.ppt 数据...
数据结构-栈的C语言实现,随手笔记
在这个主题中,我们将专注于两种基本的线性数据结构:栈和队列,特别是C语言实现的顺序栈。顺序栈是一种在内存中连续分配空间的抽象数据类型,它具有后进先出(LIFO)或先进后出(FILO)的特性。 ### 栈的基本概念 ...
数据结构--顺序栈的基本运算.pdf
在本资源中,我们将从数据结构的基本概念开始,逐步深入到线性表、栈、队列、树形结构、图状结构等复杂的数据结构中。每种数据结构都有其特点和应用场景,我们将通过实例和习题来帮助读者更好地理解和掌握这些知识点...
### c++数据结构---链式栈 #### 概述 链式栈是栈的一种实现方式,它使用链表作为存储结构。与数组实现的顺序栈相比,链式栈在内存分配上更加灵活,无需预分配固定大小的空间。本文将详细介绍如何在VS2010环境下...