博客
关于我
数据结构-栈
阅读量:208 次
发布时间:2019-03-01

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

1.栈的定义

    栈只能通过访问它的一端来实现数据存储和检索的一种线性数据结构,栈又称为后进先出的线性表,在栈中进行插入和删除的一端称为栈顶,另一端称为栈底,不含数据元素的栈称为空栈。

链栈图

 

2.栈的基本运算

    栈的链式存储:用链表作为存储结构的栈称为链栈。由于栈中元素的插入和删除仅在栈顶一端进行,因此不必另外设置头指针,链表的头指针就是栈顶指针。

①入栈

typedef struct Node{    Element data;    Node *next;}Node,*Stack;//s栈顶指针//e入栈的元素void Push(Stack s,Element e){    Stack newNode = (Stack)malloc(sizeof(Stack));    newNode->data = e;    newNode->next = s->next;    s->next = newNode;}

②出栈

//s为栈顶指针Stack Pop(Stack s){    if(s->next)    {        Stack p = s->next;        s->next = p->next;        return p;    }}

③判栈空

bool isEmpty(Stack s){    if(s->next)        return false;    else        return true;}

④读栈顶元素

Element Top(Stack s){    if(s->next)        return s->data;    else        return 0;}

 

转载地址:http://lcgv.baihongyu.com/

你可能感兴趣的文章
专业视频剪辑软件Final Cut Pro X Mac
查看>>
alienskineyecandy mac
查看>>
Java Maven基础
查看>>
Vasp INCAR参数详解
查看>>
Django 框架技术概况
查看>>
Django 开发学生管理系统
查看>>
MPI 编程概念介绍
查看>>
有趣的三个水桶等分8升水问题
查看>>
2020年高考物理两道解答题
查看>>
Vasp Fe晶体自动结构优化
查看>>
Leetcode 811. 子域名访问计数
查看>>
Leetcode 97. 交错字符串
查看>>
腾讯2017校招开发工程师笔试试题第二套解析
查看>>
2016年腾讯校招笔试题 详解
查看>>
固体理论 BdG变换一般形式总结
查看>>
01 类加载机制解析一
查看>>
02 类加载机制解析二:双亲委派机制
查看>>
jquery select 通过text查找
查看>>
docker 部署springboot+redis
查看>>
mybatis in 查询备忘
查看>>