栈的学习-c语言实现

本文探讨了数据结构的狭义与广义定义,强调了数据存储与操作的重要性。在算法方面,文章阐述了算法与数据存储方式的关系,并提出了泛型思想。接着,文章对比了数组和链表两种线性存储方式的优缺点。最后,文章重点介绍了栈这种线性结构的应用,特别是在函数调用和递归中的作用。
摘要由CSDN通过智能技术生成

数据结构
狭义:
数据结构是专门研究数据存储的问题
数据的存储包含两方面:个体的存储+个体关系的存储
广义:
数据结构既包括数据的存储也包括数据的操作
对存储数据的操作就是算法
算法
狭义:
算法是和数据的存储方式密切相关
广义:
算法和数据的存储方式无关
这就是泛型思想

数据的存储方式有几种
线性
连续存储【数组】
优点
存取速度很快
缺点
事先需要知道数组的长度
插入删除元素很慢
空间通常有限制
需要大块连续的内存块
离散存储【链表】
优点
空间没有限制
插入删除元素很快
缺点
存取速度很慢
线性结构的应用–栈
线性结构的应用–队列
对于栈的学习

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <stdbool.h>


//定义节点 
typedef struct Node
{
   
	int data;
	struct Node * pNext;
} NODE, * PNODE;

//定义栈 
typedef struct Stack
{
   
	PNODE pTop;
	PNODE pBottom;
} STACK, * PSTACK;

//声明函数 
void init(PSTACK);
void push(PSTACK,int);
bool empty(PSTACK);
void traverse(PSTACK);
bool pop(PSTACK);
void clear(PSTACK);

//主函数
int main(void)
{
   
	
	STACK S;
	int val;
	/*测试初始化栈及压栈函数*/
	init(&am
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值