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

南宁网站建设哪家网络营销典型案例

南宁网站建设哪家,网络营销典型案例,织梦网站如何做二级导航栏,深圳龙华区龙塘社区目录 1->栈的概念和结构 1.1栈的概念 1.2栈的结构 2->栈的实现 2.1定义关于栈的结构体和各种函数 2.2栈的初始化 STInit 函数 2.3栈的销毁 STDestroy 函数 2.4栈的插入操作 STPush 函数 2.5栈的判断是否为空操作 STEmpty 函数 2.6栈的删除操作 STPop 函数 2.7…

目录

1->栈的概念和结构

1.1栈的概念

 1.2栈的结构

 2->栈的实现

2.1定义关于栈的结构体和各种函数

2.2栈的初始化 STInit 函数

2.3栈的销毁 STDestroy 函数

2.4栈的插入操作 STPush 函数 

2.5栈的判断是否为空操作 STEmpty 函数 

2.6栈的删除操作 STPop 函数

2.7栈的取栈顶元素操作 STTop 函数

2.8求栈的大小即有效元素的个数 STSize 函数

3->测试下我们自己写的栈

4->您的专属鼓励师


1->栈的概念和结构

1.1栈的概念

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

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

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

 1.2栈的结构

 

 2->栈的实现

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

使用数组模拟原理:

 使用链表模拟原理:

 

// 下面是定长的静态栈的结构,实际中一般不实用,所以我们主要实现下面的支持动态增长的栈
typedef int STDataType;
#define N 10
typedef struct Stack
{STDataType _a[N];int _top; // 栈顶
}Stack;

2.1定义关于栈的结构体和各种函数

#pragma once
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>typedef struct Stack
{int* _arr;//开辟在堆区上存储数据的数组int _top;//栈顶的下一个位置int _capacity;//栈的容量
}ST;//1.栈初始化
void STInit(ST* pst);
//2.栈的销毁
void STDestroy(ST* pst);
//3.栈的插入操作
void STPush(ST* pst, int x);
//4.栈的删除操作
void STPop(ST* pst);
//5.取栈顶元素
int STTop(ST* pst);
//6.判断栈是否为空,空为true,非空为false
bool STEmpty(ST* pst);
//7.求栈的大小即有效元素的个数
int STSize(ST* pst);

2.2栈的初始化 STInit 函数

//1.栈初始化
void STInit(ST* pst)
{assert(pst);pst->_arr = NULL;pst->_capacity = 0;pst->_top = 0;//指向栈顶元素的下一个位置,类似于//之前写的顺序表中的_size,指向未使用位置
}

2.3栈的销毁 STDestroy 函数

//2.栈的销毁
void STDestroy(ST* pst)
{assert(pst);free(pst->_arr);//清理位于堆上的数组pst->_arr = NULL;pst->_capacity = pst->_top = 0;
}

2.4栈的插入操作 STPush 函数 

//3.栈的插入操作
void STPush(ST* pst, int x)
{assert(pst);//插入数据之前判断一下容量是否足够,不够就扩容if (pst->_top == pst->_capacity)//容量满了,扩容{//刚开始插入给4个空间,否则就2倍扩容int newcapacity = (pst->_capacity == 0 ? 4 : pst->_capacity * 2);int* newarr = (int*)realloc(pst->_arr, newcapacity * sizeof(int));if (newarr == NULL){perror("realloc failed");return;}pst->_arr = newarr;pst->_capacity = newcapacity;}//有容量了,插入数据pst->_arr[pst->_top] = x;pst->_top++;
}

2.5栈的判断是否为空操作 STEmpty 函数 

//4.判断栈是否为空,空为true,非空为false
bool STEmpty(ST* pst)
{assert(pst);return pst->_top == 0;
}

2.6栈的删除操作 STPop 函数

//5.栈的删除操作
void STPop(ST* pst)
{//首先你得有元素才能删除对吧assert(pst);assert(!STEmpty(pst));pst->_top--;
}

2.7栈的取栈顶元素操作 STTop 函数

//6.取栈顶元素
int STTop(ST* pst)
{assert(pst);assert(!STEmpty(pst));return pst->_arr[pst->_top - 1];
}

2.8求栈的大小即有效元素的个数 STSize 函数

//7.求栈的大小即有效元素的个数
int STSize(ST* pst)
{assert(pst);return pst->_top;
}

3->测试下我们自己写的栈

#include "Stack.h"//1.测试栈插入,删除,取栈顶元素
void testStack1()
{ST st;STInit(&st);STPush(&st, 1);STPush(&st, 2);STPush(&st, 3);STPush(&st, 4);STPush(&st, 5);while (!STEmpty(&st)){printf("%d : ",STTop(&st));STPop(&st);}STDestroy(&st);}int main()
{testStack1();return 0;
}

运行,看控制台输出:欧耶,我们自己写的栈可以正常运行

4->您的专属鼓励师

        有些事情,你永远都没有办法做到“顶尖”,因为智力跟不上.但是所有的事情,你都可以做到“高段”,因为它需要的是时间的累积和精力的打磨.不聪明与聪明之间的区别,是很微妙的.有时候我们只会通过一次两次的结果,来判断整个人、整件事,其实这是不明智的.从小,邻居和亲戚在谈论我的时候,都会觉得我很聪明。但是只有我自己知道,我从来没有聪明过,只是看上去比较聪明而已.

        修行之路确实枯燥,但是我们把问题搞懂以后就发现他是那样的美妙!一遍学不会没关系吖,多看几遍,我也是学了好多遍呢,小伙伴们肯定学的又快又好!!!最后希望写的内容对小伙伴们有所帮助,我写的如果有哪里不对的地方请在评论区或者私信指出来哦!让我们一起进步吖,任何疑问包括心情不好都可以找我聊聊,我很乐意当你的倾听者吖.   

http://www.yidumall.com/news/57599.html

相关文章:

  • 公司管理系统框架seo对网络推广的作用是什么?
  • 易语言如何做网站吗网络营销概念是什么
  • 网站可以做哪些广告语汕头网站建设优化
  • 绍兴网站建设优化seo网站
  • 重庆seo网站建设快速排名提升
  • wordpress集成qq登录seo技术顾问阿亮
  • discuz导入wordpress正规seo关键词排名哪家专业
  • 学校网站平台建设方案软文广告经典案例300字
  • 印记室内设计网站全国疫情最新名单
  • 相亲网站上做绿叶的女人很多web3域名注册
  • 如何添加网站板块如何快速推广
  • 网页制作网站建设公司百度指数查询入口
  • 太仓公司做网站友情链接怎么做
  • 外管局网站做延期收款报告武汉网站seo德升
  • 做网站需要展示工厂么?互联网营销师培训课程
  • 便民类网站 做旺道seo系统
  • 有电脑网站怎样建手机号码丈哥seo博客工具
  • 男装网站的网站建设背景seo自学网官网
  • 快速搭建网站vue品牌营销案例
  • 做网站外贸怎么找客户百度网站优化排名
  • 手机网站的尺寸做多大的网络营销策略分析
  • 免费网站建设建议如何进行网络推广和宣传
  • 网站如何做谷歌优化全网推广哪家正宗可靠
  • 嘉善在线做网站吗单页面网站如何优化
  • 如何在手机上做自己的网站汕头seo排名
  • 漳州市网站建设费用网络营销策略的演变
  • 有谁知道教做空间的网站啊长沙百度网站快速排名
  • 做漫画封面的网站网络软文写作
  • 怎样做理财投资网站网站设计与制作公司
  • 哈尔滨信息网招聘临沂seo公司