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

网站 qq在线客服修改网络营销热点事件案例分析

网站 qq在线客服修改,网络营销热点事件案例分析,建网站销售常见问题,做色流网站要注意什么——————————————本文旨在交流计算机技术,欢迎指正————————————— 上一大章,我们深入讲解了链表的内容,这一章,我们详细介绍一种较为简单的数据结构———栈。 首先,我们介绍栈是什么&#xf…

——————————————本文旨在交流计算机技术,欢迎指正—————————————

        上一大章,我们深入讲解了链表的内容,这一章,我们详细介绍一种较为简单的数据结构———栈。

        首先,我们介绍栈是什么:栈是一种单向的结构,其中栈的底部是固定的,不可以进出,我们可操作的部分只有栈顶,来进行出入栈操作。如图:

        那么,这种结构的优越性在哪里呢?我们可知这种出站入栈的方式可以和好的追踪上一步的痕迹,所以在计算机应用中,我们常用的快捷键“ctrl+z”回溯键就是利用栈的原理实现的。同时,栈还是定义局部变量时操作系统为我们自动分配的一段有限空间。

下面,我们 来介绍顺序栈:

        在书写顺序栈之前,我们先要了解四个概念:满栈递增,满栈递减,空栈递增,空栈递减。

下面附上代码:

//空栈递增
a1.data[a1.pos]=1;//先赋值
a1.pos++;//后移动pos位置
//每次完成一次后pos指向空的栈位置

空栈递增:

 

 ——————————————————————————————————————————

//满栈递增
pos++;//先更新pos指向位置
a1.data[a1.pos]=1;//再赋值
//每次完成后pos指向当前赋值的位置

满栈递增:

 

———————————————————————————————————————————

//空栈递减
a1.data[a1.pos]=e;//先赋值
pos--;//后更新位点
//只不过是从栈顶最大值开始,大往小递减,指向赋值下小的那一个空栈点

空栈递减:

———————————————————————————————————————————

//满栈递减
pos--;//先更新指向
a1.data[a1.pos]=e;//后更新栈值
//从栈顶大往小递减顺序,pos指向离栈底更近的一个空栈值

满栈递减:

 

——————————————————————————————————————————————————————————————————————————————————————        好了,现在我们已经介绍完顺序栈的基本结构和入栈方法了,下面,我们来完成一下这个数据结构吧!

1、首先是.h中的声明及(不懂的可以看我第一章讲的.h文件的作用):

typedef int Element;
#define MaxStackSize	5typedef struct {STACK_SIZEint top;
} ArrayStack;/* 递增空栈 */
void initArrayStack(ArrayStack *stack);void pushArrayStack(ArrayStack *stack, Element e);
void popArrayStack(ArrayStack *stack);Element getTopArrayStack(const ArrayStack *stack);int isEmptyArrayStack(const ArrayStack *stack);
int isFullArrayStack(const ArrayStack *stack);

2、然后是初始化:

void initArrayStack(ArrayStack* stack) {memset(stack->data, 0, sizeof(stack->data));stack->top = 0;
}

3、增删改查操作(这里我们经常使用递增空栈来完成):

void pushArrayStack(ArrayStack* stack, Element e) {stack->data[stack->top] = e;++stack->top;
}
//增加函数void popArrayStack(ArrayStack* stack) {--stack->top;
}
//删除函数Element getTopArrayStack(const ArrayStack* stack) {int pos = stack->top - 1;return stack->data[pos];
}
//查询函数int isEmptyArrayStack(const ArrayStack* stack) {return stack->top == 0;
}
//判断是否是空栈int isFullArrayStack(const ArrayStack* stack) {return stack->top == MaxStackSize;
}
//判断是否满栈

        好了,我们已经讲解完成了顺序栈操作,接下来,我们来讲解链式栈的操作。类比表结构,既然有顺序表,我们就有链式表。与链式表原理,我们也有链式栈(同理,链式栈的逻辑结构也是旨在寻找零散空间插入,不再是顺序栈的那种整块空间但是实际空间分配还是依照操作系统来分配):

        关于链式栈的构建,因为我们每次出栈的时候是找前一次的入栈并指向它,所以我们入栈的时候地址域指针指向前一个。

下面是一个概念图:

由此,模仿链式结构,我们可以实现链式栈:

1、头文件.h文件的编写:

typedef int Element;
#include "common.h"typedef struct _node {Element data;struct _node *next;
} StackNode;//节点typedef struct {StackNode *top;int count;
} LinkStack;//栈底LinkStack *createLinkStack();
void releaseLinkStack(LinkStack *stack);int pushLinkStack(LinkStack *stack, Element e);
int popLinkStack(LinkStack *stack, Element *e);

2、 实现增删改查

#include "linkStack.h"
#include <stdio.h>
#include <stdlib.h>//创建栈
LinkStack* createLinkStack() {LinkStack* link_stack = malloc(sizeof(LinkStack));if (link_stack == NULL) {fprintf(stderr, "linkStack malloc failed!\n");return NULL;}link_stack->top = NULL;link_stack->count = 0;return link_stack;
}//销毁栈
void releaseLinkStack(LinkStack* stack) {if (stack) {while (stack->top) {StackNode *tmp = stack->top;stack->top = tmp->next;free(tmp);--stack->count;}printf("stack count: %d\n", stack->count);}
}//入栈
int pushLinkStack(LinkStack* stack, Element e) {StackNode *node = malloc(sizeof(StackNode));if (node == NULL) {fprintf(stderr, "Stack Node malloc failed!\n");return -1;}node->data = e;node->next = stack->top;stack->top = node;++stack->count;return 0;
}//出栈
int popLinkStack(LinkStack* stack, Element* e) {if (stack->top == NULL) {fprintf(stderr, "stack empty!\n");return -1;}*e = stack->top->data;StackNode *tmp = stack->top;stack->top = tmp->next;free(tmp);--stack->count;return 0;
}

好了,我们已经讲解完毕顺序栈和链式栈,下面去练习一下吧~~~

——————————————希望能对你有所帮助!——————————————————

http://www.dtcms.com/wzjs/183216.html

相关文章:

  • 西安网站开发哪家好百度热门关键词
  • 坑梓网站建设企业关键词排名优化哪家好
  • 网站建设怎么设置网址百度关键词怎么设置
  • wordpress阿里云主机名四川游戏seo整站优化
  • 北京58网站建设公司如何在百度宣传
  • 什么网站可以做任务挣钱的业务推广方式有哪些
  • 平度网站建设软文写作发布
  • 上海网站开发怎么做亚马逊seo什么意思
  • 江苏省建集团领导名单无锡seo
  • 岳阳做网站哪家好商品推广软文范例200字
  • 南平做网站品牌推广百度seo
  • 电子商务网站开发课程设计网店推广是什么
  • 做网站的5要素济南seo网站优化公司
  • 用ps做网站导航站长工具seo查询
  • 淘宝网站开发店铺什么类别一个新品牌怎样营销推广
  • 如果建设管理运营一个网站关键词百度网盘
  • 公司做公司网站企业培训考试
  • 咸阳市城乡建设规划局网站湖南知名网络推广公司
  • 营销策略的思路网站seo收录
  • wordpress page页面seo云优化公司
  • 健康私人定制网站怎么做济南网站seo公司
  • mvc做门户网站扫描图片找原图
  • 做下载类网站一年赚多少钱百度世界排名
  • 毕业论文酒店网站开发与设计石家庄网站建设seo公司
  • 现在开什么网站抖音seo怎么做的
  • 网站防封链接怎么做百度seo推广免费
  • 网站设计色板优化最狠的手机优化软件
  • 一个人做网站 优帮云seo搜索培训
  • 免费h5旅游网站模板网络营销项目策划方案
  • 长春怎么做网站成人电脑培训班办公软件