数据结构-栈
发布日期:2021-05-04 03:07:38 浏览次数:8 分类:技术文章

本文共 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;}

 

上一篇:数据结构-队列
下一篇:数据结构-线性表

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月28日 21时14分12秒