当前位置: 首页 > news >正文

广州的网站建设公司哪家好/微信广告推广如何收费

广州的网站建设公司哪家好,微信广告推广如何收费,温州网站建设排名,新云网站模版1.栈的初始化 2.入栈 3.出栈 4.取出栈顶元素 5.获取栈中有效元素个数 6.栈的销毁 栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作 的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先…

1.栈的初始化

2.入栈

3.出栈

4.取出栈顶元素

5.获取栈中有效元素个数

6.栈的销毁


栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作 的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的原则。

压栈:栈的插⼊操作叫做进栈/压栈/⼊栈,⼊数据在栈顶。

出栈:栈的删除操作叫做出栈。出数据也在栈顶

1.栈的初始化

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>//定义
typedef int STDataType;
struct Stack
{STDataType* arr;int capacity;  int top;  //记录栈顶元素
};
typedef struct Stack ST;//栈的初始化
void STInit(ST* ps)
{ps->arr = NULL;ps->capacity = 0;ps->top = 0;
}


2.入栈

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>//定义
typedef int STDataType;
struct Stack
{STDataType* arr;int capacity;  int top;  //记录栈顶元素
};
typedef struct Stack ST;//入栈
void STPush(ST* ps, STDataType x)
{assert(ps);if (ps->top == ps->capacity)//判断内存是否够 --- 如果栈顶等于栈容量大小,那么就需要扩容{int newcapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;STDataType* tmp = (STDataType*)realloc(ps->arr, newcapacity *sizeof(STDataType));if (tmp == NULL)//如果申请失败,则perror{perror("realloc fail");exit(1);}ps->capacity = newcapacity;ps->arr = tmp;}ps->arr[ps->top++] = x;//入栈
}

3.出栈

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>//定义
typedef int STDataType;
struct Stack
{STDataType* arr;int capacity;  int top;  //记录栈顶元素
};
typedef struct Stack ST;//判断栈是否为空
bool STEmpty(ST* ps)
{assert(ps);return ps->top == 0;//如果为0,则返回true,不为0返回false
}//出栈
void STPop(ST* ps)
{assert(!STEmpty(ps));//记得要取反 --- 栈不为空才可以出栈,否则就是非法访问--ps->top;//对栈顶--即可
}

4.取出栈顶元素

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>//定义
typedef int STDataType;
struct Stack
{STDataType* arr;int capacity;  int top;  //记录栈顶元素
};
typedef struct Stack ST;//判断栈是否为空
bool STEmpty(ST* ps)
{assert(ps);return ps->top == 0;//如果为0,则返回true,不为0返回false
}//取出栈顶元素
STDataType STTop(ST* ps)
{assert(!STEmpty(ps));//栈不为空才可以取栈顶 --- 否则就是非法访问
//方法一// STDataType tmp = ps->arr[ps->top - 1];// STPop(ps);// return tmp;
//方法二return ps->arr[ps->top - 1];
}

5.获取栈中有效元素个数

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>//定义
typedef int STDataType;
struct Stack
{STDataType* arr;int capacity;  int top;  //记录栈顶元素
};
typedef struct Stack ST;//获取栈中有效元素个数
int STSize(ST* ps)
{assert(ps);return ps->top;//我们在出栈和入栈都有记录top,所以直接返回top就是栈的有效元素个数
}

6.栈的销毁

//栈的销毁
void STDestroy(ST* ps)
{if (ps->arr)//如果ps->arr不为空,那么进入if,释放ps{free(ps->arr);}ps->arr = NULL;//置为空,避免成为野指针ps->capacity = 0;ps->top = 0;
}

http://www.cadmedia.cn/news/630.html

相关文章:

  • 学做网站前景/网站目录提交
  • 山东企业网站建设费用/什么软件可以刷网站排名
  • 中工信融做网站怎么样/长春网站建设公司哪个好
  • 学校网站建设项目管理报告/网站的宣传推广方式
  • 做毕业设计免费网站建设/怎么注册网站免费的
  • 自己可以做类似淘宝客网站吗/网站搭建外贸
  • 同德县公司网站建设/2022知名品牌营销案例100例
  • 那个公司做网站/西安疫情最新数据消息5分钟前
  • 网站 建设服务器/河南网站顾问
  • 福州建设网站公司/seo和sem的区别与联系
  • sql做网站后台/短网址生成网站
  • 微信网站建设电话/百度刷seo关键词排名
  • 广州公安局门户网站/中国今日新闻
  • 做网站一般长宽多少/惠州网络营销公司
  • 网站制作公司优势/企业网站推广技巧
  • 西安三桥网站建设/广告推广怎么做
  • 网站快速网站推广/百度网页版 入口
  • 天河区做网站公司/网络服务器的作用
  • 铜川免费做网站/苏州百度
  • 网站备案后有什么好处/百度下载官方下载安装
  • 做电商网站必需知道qc/百度小说风云榜排行榜官网
  • 温州专业微网站制作公司/怎么制作微信小程序
  • 网站做谷歌推广有效果吗/企业培训网
  • 多个网站集成在一个页面/线下推广活动策划方案
  • 健康中国app/上海seo顾问
  • 刷题网站建设/sem竞价推广托管
  • 南宁手机平台网网站建设/色盲和色弱的区别
  • 提升政务网站建设水平/河南网站建设哪个公司做得好
  • 专门做调研的网站/石家庄百度关键词优化
  • 大气的企业网站模板/网站app免费生成软件