数据结构——堆栈的C语言实现

1.什么叫堆栈?

在这里插入图片描述

2.堆栈的数据类型描述

在这里插入图片描述

3.堆栈顺序存储的C语言实现

#include<stdio.h>
#include<stdlib.h>#define MaxSize 10
#define ERROR -1
#define ElementType int
typedef struct SNode *Stack;
struct SNode{ElementType Data[MaxSize];int Top;
};Stack PtrS;
//1.初始化
Stack MakeEmpty()
{Stack PtrS;PtrS = (Stack)malloc(sizeof(struct SNode));PtrS->Top=-1;return PtrS;
}//2.入栈
void Push(ElementType item,Stack PtrS)
{if(PtrS->Top==MaxSize){printf("栈已满\n");return;}else{PtrS->Data[++(PtrS->Top)]=item;return;}
}//3.出栈
ElementType Pop(Stack PtrS)
{if(PtrS->Top==-1){printf("栈为空\n");return ERROR;}else{return PtrS->Data[(PtrS->Top)--];}
}int main()
{int i;PtrS=MakeEmpty();Push(23,PtrS);Push(28,PtrS);Push(78,PtrS);for(i=0;i<=PtrS->Top;i++ ){printf("%d  ",PtrS->Data[i]);}printf("\n");printf("出栈为:%d\n",Pop(PtrS));for(i=0;i<=PtrS->Top;i++ ){printf("%d  ",PtrS->Data[i]);}   printf("\n");return 0;
}

4.堆栈链式存储的C语言实现

#include<stdio.h>
#include<stdlib.h>#define ElementType int
typedef struct SNode *Stack;
struct SNode{ElementType Data;Stack Next;
};
Stack PtrS;//1.初始化
Stack MakeEmpty()
{Stack PtrS;PtrS = (Stack)malloc(sizeof(struct SNode));PtrS->Next=NULL;return PtrS;
}//2.判断堆栈是否为空,空为1,不空为0
int IsEmpty(Stack PtrS)
{return (PtrS->Next==NULL);
}//3.入栈
void Push(ElementType item,Stack PtrS)
{Stack TmpCell;TmpCell = (Stack)malloc(sizeof(struct SNode));TmpCell->Data=item;TmpCell->Next=PtrS->Next;PtrS->Next=TmpCell;
}//4.出栈
ElementType Pop(Stack PtrS)
{ElementType TopElement;Stack FirstCell;if(IsEmpty(PtrS)){printf("栈为空\n");return 0;}else{FirstCell=PtrS->Next;PtrS->Next=FirstCell->Next;TopElement=FirstCell->Data;free(FirstCell);return TopElement;}
}int main()
{int i;PtrS=MakeEmpty();Push(41,PtrS);printf("%d\n",PtrS->Next->Data);Push(14,PtrS);Push(67,PtrS);Stack S=PtrS;for(i=0;i<3;i++){S=S->Next;printf("%d  ",S->Data);}printf("\n");Stack S2=PtrS;printf("出栈为:%d\n",Pop(S2));for(i=0;i<2;i++){S2=S2->Next;printf("%d  ",S2->Data);}printf("\n");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

引用数据类型(类)

提到引用数据类型&#xff08;类&#xff09;&#xff0c;其实我们对它并不陌生&#xff0c;如使用过的Scanner类、Random类。 我们可以把类的类型为两种&#xff1a; l 第一种&#xff0c;Java为我们提供好的类&#xff0c;如Scanner类&#xff0c;Random类等&#xff0c;这些…

11位院士专家建言基础研究

来源&#xff1a; 中国科学报作者&#xff1a; 陈欢欢 胡珉琦 ■本报记者 陈欢欢 胡珉琦基础研究是否完全是自由探索&#xff1f;如何加强新时代的基础研究&#xff1f;如何打造一支潜心基础研究的科研队伍&#xff1f;11月15日&#xff0c;在中国科学院加强基础研究座谈会上&a…

数据结构——队列的C语言实现

1.什么是队列&#xff1f; 2.队列的抽象数据类型描述 3.队列之顺序表的C语言实现 #include<stdio.h> #include<stdlib.h>#define MaxSize 5 #define ElementType int #define ERROR -1typedef struct QNode *Queue; struct QNode{ElementType Data[MaxSize];int r…

java连接sqlserver报错

使用Java进行项目开发&#xff0c;一般是使用MySQL数据库&#xff0c;由于项目需要本次换成了SQLServer数据库&#xff0c;在eclipse中进行连接测试时驱动类、URL地址、用户名和密码都正确&#xff0c;但是会抛出以下异常&#xff0c;无法正确连接到SQLServer数据库 com.micros…

李德毅院士:新一代人工智能十问

来源&#xff1a;智能系统学报编辑&#xff1a;王娜 审核&#xff1a;李雪莲--- 基本共识 ---智能是学习的能力&#xff0c;以及解释、解决问题的能力&#xff1b;人工智能是脱离生命体的智能&#xff0c;是人类智能的体外延伸&#xff1b;通用人工智能面向不同的情境&a…

构建之法阅读笔记

转载于:https://www.cnblogs.com/zhaoxinhui/p/10967251.html

数据结构——树的C语言实现

文章目录1.什么是树&#xff1f;2.如何判断是否是树&#xff1f;3.树的基本术语4.树的表示方法5.二叉树的定义6.特殊二叉树7.二叉树的性质8.二叉树的抽象数据类型定义9.二叉树的存储结构9.1顺序存储9.2 链表存储10.二叉树的遍历10.1 二叉树的遍历方法1.递归遍历2.层序遍历10.2 …

Gartner:为什么元宇宙商业离我们还很遥远?

来源&#xff1a;云技术(文&#xff1a;Gartner杰出研究副总裁Mark Raskino&#xff09;我记得第二人生&#xff08;Second Life&#xff09;的创始人Philip Rosedale说过&#xff1a;“请打开您的防火墙&#xff0c;进入到我们的世界中&#xff01;”他曾在台上接受过我的同事…

数据结构——二叉搜索树的C语言实现

1.什么是二叉搜索树&#xff1f; 2.二叉搜索树的操作 3.二叉搜索树的C语言实现 #include<stdio.h> #include<stdlib.h>#define ElementType int typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode{ElementType Data;BinTree Left;Bin…

模拟整个地球:英伟达Earth-2超级计算机即将上线

来源&#xff1a;机器之心未来几十年的世界将会发生什么变化&#xff0c;英伟达决定制造一台超级计算机来模拟整个地球。「如何让我们的未来在今天就变成现实呢&#xff1f;答案就是模拟&#xff0c;」英伟达创始人、CEO黄仁勋说道。上周二的GTC大会上&#xff0c;英伟达提出了…

数据结构——堆的C语言实现

1.什么是堆&#xff1f; 2.堆的抽象数据类型描述 3.堆的C语言实现 #include<stdio.h> #include<stdlib.h>#define ElementType int #define MaxData 100 typedef struct HeapStruct *MaxHeap; struct HeapStruct{ElementType *Elements;int Size;int Capacity; };…

洛谷P1067 多项式输出

.. 题目描述 一元nn次多项式可用如下的表达式表示&#xff1a; f(x)a_nx^na_{n-1}x^{n-1}\cdots a_1xa_0,a_n\ne 0f(x)an​xnan−1​xn−1⋯a1​xa0​,an​≠0 其中&#xff0c;a_ix^iai​xi称为ii次项&#xff0c;a_iai​ 称为ii次项的系数。给出一个一元多项式各项的次数和系…

李飞飞团队:如何制造更聪明的人工智能?让人工生命在复杂环境中进化

来源&#xff1a;集智俱乐部作者&#xff1a;郭瑞东 审校&#xff1a;张澳 编辑&#xff1a;邓一雪 论文题目&#xff1a;Embodied intelligence via learning and evolution论文链接&#xff1a;https://www.nature.com/articles/s41467-021-25874-z1. 智能和身体形态有关动物…

数据结构——图的C语言实现

文章目录1.什么是图&#xff1f;2.图的抽象数据结构3.如何在程序中表示一个图&#xff1f;3.1 邻接矩阵3.2 邻接表4.图的遍历4.1 深度优先搜索4.2 广度优先搜索5.图的C语言实现1.什么是图&#xff1f; 2.图的抽象数据结构 3.如何在程序中表示一个图&#xff1f; 3.1 邻接矩阵 …

Koa 中间件的执行

Node.js 中请求的处理 讨论 Koa 中间件前&#xff0c;先看原生 Node.js 中是如何创建 server 和处理请求的。 node_server.js const http require("http"); const PORT 3000;const server http.createServer((req, res) > {res.end("hello world!");…

张亚勤院士谈“智能计算新趋势”

来源&#xff1a;人工智能计算大会作为第四次工业革命的核心&#xff0c;人工智能已经成为全球新一轮科技革命和产业变革的核心驱动力。在2021人工智能计算大会&#xff08;AICC 2021&#xff09;上&#xff0c;清华大学智能科学讲席教授、美国艺术与科学院院士张亚勤带来了《智…

数据结构——排序算法

文章目录1.简单排序1.1 冒泡排序1.2 插入排序2.希尔排序1.简单排序 1.1 冒泡排序 #include<stdio.h>#define ElementType intvoid Swap(ElementType *a,ElementType *b) {ElementType temp;temp*b;*b*a;*atemp; } void Bubble_Sort(ElementType A[],int N) {int p,i;fo…

13、git

安装Git 网上有很多Git安装教程&#xff0c;如果需要图形界面&#xff0c;windows下建议使用TortoiseGit&#xff0c;linux建议使用Git GUI或者GITK。(windows下载exe安装包&#xff0c;linux可以使用命令行&#xff09; 1. Git基本配置 配置用户名及邮箱 在使用Git提交前&…

神经网络支持大脑是「预测机器」,预测是节能的

来源&#xff1a;ScienceAI编译&#xff1a;绿萝我们的大脑&#xff0c;一个包裹在骨性头骨内的三磅重的组织&#xff0c;如何从感觉中产生知觉是一个长期存在的谜。大量证据和数十年的持续研究表明&#xff0c;大脑不能像拼拼图一样&#xff0c;简单地组合感官信息来感知周围环…

数据结构与算法——链表题目实现

文章目录1.链表逆序1.1 题目描述1.2链表逆序的C实现2.反转链表2.1 题目描述2.2 反转链表的C实现3.求两个链表的交点3.1 题目描述3.2 C实现——set3.3 C语言实现——链表长度实现4.链表求环4.1 题目描述4.2 C实现4.3 C语言实现——快慢指针5.分隔链表5.1 题目描述5.2 C实现6.复制…