数据结构之栈 Bertha 。 2022-05-16 14:29 229阅读 0赞 # 什么是栈 # 从栈的操作特性上来看,栈是一种 “操作受限”的线性表,只允许在一端插入和删除数据,且满足先进后出、后进先出的特性。 # 实现一个栈 # 栈可以用数组或链表来实现,数组实现的叫顺序栈,链表实现的叫链式栈。 # 栈的时间复杂度 # 入栈与出栈的时间复杂度均为O(1) # 动态扩容的顺序栈 # 与数组动态扩容类似,用数组实现的栈也可以动态扩容。申请一个扩容后的内存区域将数组迁移过去。 # 栈的应用 # 1. 函数调用存储局部变量 2. 表达式的求值 3. 括号匹配 4. 浏览器前进后退 # 栈的实现(使用c语言数组实现) # #include<stdbool.h> #define maxsize 100 typedef int datatype; typedef struct { datatype s[maxsize]; int index; } Stack; Stack stack; void initStack() { stack.index = -1; } bool empty() { if(stack.index == -1){ printf("empty\n"); return true; }else{ return false; } } bool full(){ if(stack.index == maxsize-1){ printf("full\n"); return true; }else{ return false; } } bool push(datatype data){ if(stack.index == maxsize-1){ printf("full\n"); return false; }else{ stack.index++; stack.s[index] = data; return true; } } bool pop(){ if(stack.index == -1){ printf("empty\n"); return false; }else{ stack.index--; return true; } datatype popValue(){ if(stack.index == -1){ printf("empty\n"); }else{ return stack.s[stack.index]; } } # 栈的实现(使用c语言链表实现) # #include<stdbool.h> typedef int datatype struct stack { datatype data; struct stack *next; } struct stack *s; #include<stdbool.h> typedef int datatype; struct stack { datatype data; struct stack *next; }; struct stack *s; void initStack() { s=NULL; } bool empty() { if(s == NULL) { printf("empty\n"); return true; } else { return false; } } bool empty() { if(s == NULL) { } } bool empty() { if(s == NULL) { printf("empty\n"); return true; } else { return false; } } void push(datatype newData) { (struct stack *newNode) = (struct stack *) malloc(sizeof(struct stack)); newNode->data = newData; newNode->next = s; s = newNode } void pop() { if(!empty()) { s = s->next; } else { printf("pop failed!\n"); } } datatype popValue() { if(!empty()) { return s->data; } else { printf("popValue failed!\n"); } }
相关 数据结构之栈 一.什么是栈? 本文将介绍一个重要的数据结构—栈,和之前讲到的链表、数组一样也是一种数据呈线性排列的数据结构,不过在这种结构中,我们只能访问最新添加的数据。栈就像是一摞书, た 入场券/ 2022年10月14日 10:49/ 0 赞/ 170 阅读
相关 数据结构之栈 栈的介绍 1)栈是一个先入后出的有序列表 2)允许插入和删除的一端,为变化的一端,称为栈顶,另一端是固定的一端,为栈底 数组模拟栈 ![在这里插入图片描述][ ╰+攻爆jí腚メ/ 2022年08月31日 13:23/ 0 赞/ 164 阅读
相关 数据结构之栈 栈是一种先进后出的线性结构,只允许在一端插入删除,属于逻辑结构。 栈的定义 package com.zhiru; / 栈是一种先进后出 男娘i/ 2022年08月11日 03:27/ 0 赞/ 177 阅读
相关 数据结构之栈 1、定义:栈(stack)是限制在插入和删除只能在一个位置进行操作的一种表结构,该合位置是表的末端,称作栈顶(top),对栈的基本操作的push()进栈和pop()出栈,一般栈 ╰半夏微凉°/ 2022年08月06日 01:05/ 0 赞/ 196 阅读
相关 数据结构之栈 栈是一种数据结构,特点是先进后出。比较通俗的说那就一个容器一端是封闭的,只能是先来的后出去。 先是写一个使用数组的栈类ArrayStack. / ArraySt 秒速五厘米/ 2022年07月12日 03:43/ 0 赞/ 215 阅读
相关 数据结构之栈 头文件: using namespace std; template <class T> class MyStack { 妖狐艹你老母/ 2022年05月27日 05:39/ 0 赞/ 197 阅读
相关 数据结构之栈 一、顺序栈 1.0 理解栈 栈是一种比线性表还要简单的数据结构,因为他就是对线性表的限制后的数据结构 即 只允许在线性表的尾部进行插入和删除操作 偏执的太偏执、/ 2022年05月25日 02:37/ 0 赞/ 241 阅读
相关 数据结构之栈 什么是栈 从栈的操作特性上来看,栈是一种 “操作受限”的线性表,只允许在一端插入和删除数据,且满足先进后出、后进先出的特性。 实现一个栈 栈可以用数组或链表来实现 Bertha 。/ 2022年05月16日 14:29/ 0 赞/ 230 阅读
相关 数据结构之栈 数据结构栈的相关学习: 简介 限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端成为栈顶,另一端成为栈低,不含任何元素的栈成为空栈,栈又称为先进先出的线性表 今天药忘吃喽~/ 2022年02月05日 05:09/ 0 赞/ 281 阅读
还没有评论,来说两句吧...