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

网站优化seo技术学网站建设难不难

网站优化seo技术,学网站建设难不难,开发公司工程部年终总结,WordPress地址是什么目录 栈(Stack)栈顶(top)栈底(bottom)空栈(不含任何元素) 创建栈 入栈操作 出栈操作 销毁一个栈 计算栈的当前容量 实例分析 栈的插入操作叫做进栈(Push&#xf…

目录

栈(Stack)栈顶(top)栈底(bottom)空栈(不含任何元素)

创建栈 

入栈操作

出栈操作

销毁一个栈

计算栈的当前容量

实例分析


栈的插入操作叫做进栈(Push),或者称为压栈、入栈。

栈的删除操作叫做出栈(Pop),或者称为弹栈。

栈又称为先进后出(last in first out)的后进先出原则,称为后进先出的线性表(LIFO)。 

栈的本质上也是一个线性表,线性表有两种存储形式,那么栈也有分为栈的顺序存储结构和栈的链式存储结构

最开始栈中不含有任何数据,叫做空栈,此时栈定就是栈底。然后数据从栈顶进入,栈顶栈底分离,整个栈的当前容量变大。数据出栈时,从栈顶移出,栈顶下一,整个栈的当前容量变小。

栈的顺序存储结构:

typedef struct 
{ElemType *base;ElemType *top;int stacksize;}sqStack;

 这里定义了一个顺序存储的栈,它包含了三个元素:base,top,stacksize。其中base是指向栈底的指针变量,top是指向栈顶的指针变量,stacksize指示栈的当前可使用的最大容量。

创建栈 

#define STACK_INIT_SIZE 100 initStack(sqStack *s)//创建栈 
{s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType));if(!s->base)exit(0);s->top=s->base;		//最开始,栈顶就是栈底。 s->stacksize = STACK_INIT_SIZE;} 

入栈操作

#include <stdlib.h>
#define STACKINCREMENT 10Push(sqStack *s,ElemType e)		//入栈操作 
{if(s->top - s->base >= s->stacksize){//如果漫展,追加空间 s->base = (ElemType *)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(ElemType));if(!s->base)exit(0);s->top=s->base + s->stacksize;s->stacksize = s->stacksize + STACKINCREMENT;}*(s-top)=e;s->top++; } 

出栈操作

出栈操作就是在栈顶取出数据,栈顶指针随之下移的操作。

每当从栈内弹出一个数据,栈的当前容量就-1.

Pop(sqStack *s,ElemType *e)
{if(s->top==s->base)//栈已空return;*e=*--(s->top); 
}

销毁一个栈

DestrogStack(sqStack *s)
{int i,len;len = s->stackSize;for(i=0;i<len;i++){free(s->base);s->base++;}s->base = s->top =NULL;s->stacksize = 0;
}

计算栈的当前容量

计算栈的当前容量也就是计算栈中元素的个数,因此只要返回s.top-s.base 即可。

栈的最大容量是指该栈占据内存空间的大小,其值是s.stackSzie,它与栈的当前容量不是一个概念。

int StackLen(sqStack s)
{return (s.top-s.base+1);
}

实例分析

利用栈的数据结构特点,将二进制转换为十进制数。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>#define STACK_INIT_SIZE 20
#define STACKINCREMENT 10typedef char ElemType;
typedef struct
{ElemType *base;ElemType *top;int stackSize; }sqStack;void InitStack(sqStack *s)
{s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType));if(!s->base)exit(0);s->top = s->base;s->stackSize=STACK_INIT_SIZE;
}void Push(sqStack *s,ElemType e)
{if(s->top - s->base>= s->stackSize){s->base=(ElemType *)realloc(s->base,(s->stackSize+STACKINCREMENT) * sizeof(ElemType));if(!s->base){exit(0);}}*(s->top)=e;s->top++;} void Pop(sqStack *s,ElemType *e)
{if(s->top==s->base){return;}*e = *--(s->top);
}int StackLen(sqStack s)
{return (s.top- s.base);
}int main(void)
{ElemType c;sqStack s;int len ,i,sum=0;InitStack(&s);printf("请输入二进制数,输入#符号表示结束!");scanf("%c",&c);while(c!='#'){Push(&s,c);scanf("%c",&c);}getchar();len = StackLen(s);printf("栈的当前容量是:%d\n",len);for(i=0;i<len;i++){Pop(&s,&c);sum=sum+(c-48)*pow(2,i);}printf("%d",sum);return 0;
}

http://www.yayakq.cn/news/145677/

相关文章:

  • 水果销售网站模板自己做传奇网站
  • 单页淘宝客网站2014年行吗网站改版对网站优化影响最大的问题是什么
  • 贸易网站建设案例Wordpress拍卖
  • 扁平风格网站欣赏正版软件购买网站
  • 买一个成品网站多少钱做网站品
  • 网站备案号的区别关于门户网站建设的整改报告
  • 鹤壁市城乡一体化示范区网站wordpress客户管理
  • 自己做的网站如何链接到百度栾城区住房建设局官方网站
  • 设备建设网站八年级信技做网站
  • 深圳建设网站需要多少钱wordpress 发货
  • 阜宁做网站网络策划工作内容
  • wordpress 怎么加速福州关键词seo
  • 嘉华伊美网站建设网站页面和图片设计
  • 网站外链平台wordpress响应缓慢
  • 河南建网站 优帮云学做前端的网站
  • 网站开发实战视频青县住房和城乡建设局网站
  • 网站备案公司网站ip地址向谁购买
  • 东莞网站建设aj工作室网站推广是做什么工作
  • 河北恒基建设招标有限公司网站app设计风格有哪些
  • 贵阳地铁建设网站企业网站建设一站式服务
  • 做一个好一点网站费用多少全屋定制十大名牌衣柜
  • 建设银行网站上交医保wordpress 整站ssl
  • 平面设计网站排行榜做信息发布类网站用什么语言
  • 网站被k换域名 老域名能不能跳转自己做网站地图
  • 做电影资源网站服务器怎么选Seo自己做网站
  • 网站建设信息安全要求郑州手机网站搭建
  • 网站建设人员工作要求用超轻粘土做网站
  • wordpress 标签详解网站优化网站优化
  • dedecms英文外贸网站企业模板下载2345手机浏览器
  • 国内出名的设计网站有哪些怎么做导购网站