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

宁波做公司网站的公司seo推广话术

宁波做公司网站的公司,seo推广话术,新媒体8大营销方式,重庆市建设工程信息网更改数据结构 | 栈的实现 文章目录 数据结构 | 栈的实现栈的概念及结构栈的实现 Stack.h初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空销毁栈 Stack.c 栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。…

数据结构 | 栈的实现

文章目录

  • 数据结构 | 栈的实现
      • 栈的概念及结构
      • 栈的实现
    • Stack.h
      • 初始化栈
      • 入栈
      • 出栈
      • 获取栈顶元素
      • 获取栈中有效元素个数
      • 检测栈是否为空
      • 销毁栈
    • Stack.c

栈的概念及结构

  • 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
  • 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
  • 出栈:栈的删除操作叫做出栈。出数据也在栈顶。

在这里插入图片描述


在这里插入图片描述

栈的实现

  • 栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。

在这里插入图片描述


在这里插入图片描述


Stack.h

#pragma once#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>typedef int STDataType;typedef struct Stack
{STDataType* a;int top;int capacity;
}ST;// 初始化栈
void StackInit(ST* ps);
// 入栈
void StackPush(ST* ps, STDataType x);
// 出栈
void StackPop(ST* ps);
// 获取栈顶元素
STDataType StackTop(ST* ps);
// 获取栈中有效元素个数
int StackSize(ST* ps);
// 检测栈是否为空,如果为空返回非零结果,如果不为空返回0
bool StackEmpty(ST* ps);
// 销毁栈
void StackDestroy(ST* ps);

Stack.c

初始化栈

void StackInit(ST* ps)
{assert(ps);ps->a = NULL;ps->capacity = 0;ps->top = 0;
}

入栈

void StackPush(ST* ps, STDataType x)
{assert(ps);if (ps->capacity == ps->top){STDataType newcapacity = ps->capacity == 0 ? 4 : ps->capacity * 2;STDataType* tmp = (STDataType*)realloc(ps->a, sizeof(STDataType) * newcapacity);if (tmp == NULL){perror("relloc fail!\n");exit(-1);}ps->a = tmp;ps->capacity = newcapacity;}ps->a[ps->top] = x;ps->top++;
}

出栈

void StackPop(ST* ps)
{assert(ps);assert(ps->top > 0);ps->top--;
}

获取栈顶元素

STDataType StackTop(ST* ps)
{assert(ps);assert(ps->top > 0);return ps->a[ps->top - 1];
}

获取栈中有效元素个数

int StackSize(ST* ps)
{assert(ps);return ps->top;
}

检测栈是否为空

bool StackEmpty(ST* ps)
{assert(ps);return ps->top == 0;
}

销毁栈

void StackDestroy(ST* ps)
{assert(ps);ps->a = NULL;ps->capacity = ps->top = 0;
}

Stack.c

#define _CRT_SECURE_NO_WARNINGS 1#include"Stack.h"// 初始化栈
void StackInit(ST* ps)
{assert(ps);ps->a = NULL;ps->capacity = 0;//top 表示指向栈顶元素//ps->top = -1;//top 表示指向栈顶元素的下一个ps->top = 0;
}
// 入栈
void StackPush(ST* ps, STDataType x)
{assert(ps);if (ps->capacity == ps->top){STDataType newcapacity = ps->capacity == 0 ? 4 : ps->capacity * 2;STDataType* tmp = (STDataType*)realloc(ps->a, sizeof(STDataType) * newcapacity);if (tmp == NULL){perror("relloc fail!\n");exit(-1);}ps->a = tmp;ps->capacity = newcapacity;}ps->a[ps->top] = x;ps->top++;
}
// 出栈
void StackPop(ST* ps)
{assert(ps);assert(ps->top > 0);ps->top--;
}
// 获取栈顶元素
STDataType StackTop(ST* ps)
{assert(ps);assert(ps->top > 0);return ps->a[ps->top - 1];
}
// 获取栈中有效元素个数
int StackSize(ST* ps)
{assert(ps);return ps->top;
}
// 检测栈是否为空,如果为空返回非零结果,如果不为空返回0
bool StackEmpty(ST* ps)
{assert(ps);return ps->top == 0;
}
// 销毁栈
void StackDestroy(ST* ps)
{assert(ps);ps->a = NULL;ps->capacity = ps->top = 0;
}

好了,栈的实现就到这里结束了,有用的话点个赞吧~~

http://www.tj-hxxt.cn/news/109534.html

相关文章:

  • 直销平台有哪些网站优化靠谱seo
  • 自己本地可以做网站服务器吗南通做网站推广的公司
  • 网页上一页下一页代码优化疫情防控 这些措施你应该知道
  • 做django后台网站网站域名解析ip查询
  • 成都科技网站建设找域名注册查询系统
  • 兰州市城乡建设厅网站搜狗推广登陆
  • 货到付款网站怎么做苏州百度关键词优化
  • 外贸多语言网站建设广告投放是做什么的
  • 武汉手机网站建设价位百度收录最新方法
  • 成都网站建设外包业务微信软文是什么
  • 个人网站做多久有效果线上培训平台
  • 免费做团购网站的软件有哪些谷歌排名查询
  • 做一个网站建设需要多少钱关键词排名怎么上首页
  • 网网站开发设计外贸平台推广
  • 做网站百度收费吗爱站
  • 教学网站开发应用方案深圳网站设计专业乐云seo
  • wordpress get option网络优化大师手机版
  • 东莞建站公司百度seo网络营销书
  • 北京优化网站推广seo外包公司一般费用是多少
  • 做网站要多少知识 java百度百度一下一下
  • 编程培训班哪个好seo关键词优化的技巧和方法
  • 珠海做网站最好的公司有哪些关键词在线下载
  • 深圳品牌网站开发网络软文是什么意思
  • 邹城网站开发长沙百度网站排名优化
  • 网站换一家做还用备案么网站平台推广
  • spring boot 做网站推广策划方案范文
  • 公司网站实名认证怎么做东莞网络推广策略
  • 网站后台管理系统 源码深圳网络推广哪家好
  • wordpress自定义进入后台地址谷歌优化排名公司
  • 网站备案申请seo服务外包公司