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

wordpress双语站点wordpress用法

wordpress双语站点,wordpress用法,有没有做书签的网站,新乡免费网站建设概述 什么是栈#xff1a; 栈又称堆栈#xff0c;是限定在一段进行插入和删除操作的线性表。具有后进先出(LIFO)的特点。 相关名词#xff1a; 栈顶#xff1a;允许操作的一端栈底#xff1a;不允许操作的一端空栈#xff1a;没有元素的栈 栈的作用#xff1a; 可…概述 什么是栈 栈又称堆栈是限定在一段进行插入和删除操作的线性表。具有后进先出(LIFO)的特点。 相关名词 栈顶允许操作的一端栈底不允许操作的一端空栈没有元素的栈 栈的作用 可以检测逻辑图中是否有回路可以将非线性问题线性化  入栈与出栈示意图 入栈先指针1再入栈数据。出栈先出栈数据再指针1 顺序栈 1、基本内容 顺序栈就是以数组形式进行存储的栈数据结构。 顺序栈结构体如下 typedef int data_t; typedef struct{data_t* pData;//数据int max_len; //最大数据长度int top; //栈顶位置 }sqstack,*stacklink; 顺序栈代码的文件构成 sqstack.h数据结构的定义、运算函数接口sqstack.c运算函数接口的实现test.c使用数据结构实现的应用功能代码 顺序栈相关函数 1、整个栈的创建和删除 创建stacklink stack_create(int len);删除int stack_delete(stacklink pStack); 2、入栈、出栈 入栈int stack_push(stacklink pStack,data_t data);出栈int stack_pop(stacklink pStack,data_t* data); 3、其他 栈清空int stack_clean(stacklink pStack);判断栈是否为空int stack_isempty(stacklink pStack); 2、功能实现   2.1 创建/删除栈 2.1.1 创建  创建栈与创建线性表一样都是先申请空间之后赋值初始值 注意在申请栈成功后如果申请数据空间失败需要释放申请的栈空间  具体代码实现如下 /** stack_create:创建一个栈* param len:栈的长度* ret NULL--err other--栈的地址* */ stacklink stack_create(int len){stacklink pStack NULL;//1.申请空间//1.1 栈的空间pStack (stacklink)malloc(sizeof(sqstack));if(pStack NULL){printf(stack malloc err\n);return NULL;}//1.2 数据的空间pStack-pData (data_t*)malloc(sizeof(data_t)*len);if(pStack-pData NULL){printf(data malloc err\n);free(pStack);//此时pStack已经申请成功应该释放空间return NULL;}//2.初始化memset(pStack-pData,0,sizeof(data_t)*len);pStack-max_len len;pStack-top -1;//-1代表空栈return pStack; }2.1.2 删除 删除栈就是释放所申请的空间。 注意这里申请的空间是栈空间和数据空间所以要释放两次 具体代码实现如下  /** stack_delete:栈的释放* param pStack:要进行释放的栈* ret -1--err 0--success* */ int stack_delete(stacklink pStack){//1.判断栈空间是否为空if(pStack NULL){printf(pStack is NULL\n);return -1;}//2.释放空间free(pStack-pData);//释放数据空间free(pStack); //释放栈空间pStack NULL;return 0; }2.2 入栈与出栈 2.2.1 入栈 入栈就是先将指针1再将数据入栈。 具体代码实现如下 /** stack_push:入栈* param pStack:所需入栈的栈的位置* param data:所需入栈的数据* ret -1--err 0--success* */ int stack_push(stacklink pStack,data_t data){//1.判断栈空间是否为空if(pStack NULL){printf(pStack is NULL\n);return -1;}//2.判断栈空间是否已满if(pStack-top (pStack-max_len-1)){printf(stack is full\n);return -1;}//3.入栈pStack-top; //栈顶移动*(pStack-pData pStack-top) data; //数据入栈return 0; }2.2.2 出栈 入栈就是先将数据出栈再将指针-1。 具体代码实现如下 /** stack_pop:出栈* param pStack:要进行出战的栈的位置* param data:出栈数据存储的位置* ret -1--err 0--success* */ int stack_pop(stacklink pStack,data_t* data){//1.判断栈空间是否为空if(pStack NULL || data NULL){printf(pStack is NULL\n);return -1;}//2.判断栈是否为空栈if(pStack-top -1){printf(stack is empty\n);return -1;}//3.出栈*data *(pStack-pData pStack-top);//数据出栈pStack-top--; //顶部移动return 0; }2.3 其他 2.3.1 栈清空 栈清空就是让栈的指针指向-1。 栈情况并不需要清空数组中的数据因为之后写入新数据会自动覆盖旧数据 具体代码实现如下 /** stack_clean:清空栈* param pStack:要进行清空的栈* ret -1--err 0--success* */ int stack_clean(stacklink pStack){//1.判断栈空间是否为空if(pStack NULL){printf(pStack is NULL\n);return -1;}//2.清空栈pStack-top -1;//设为空栈不需要清空return 0; } 2.3.2 判断栈是否为空 空栈就是指针指向-1。 具体代码实现如下 /** stack_isempty:判断栈是否为空栈* param pStack:需要进行判断的栈* ret -1--err 1--空栈 0--非空栈* */ int stack_isempty(stacklink pStack){//1.判断栈空间是否为空if(pStack NULL){printf(pStack is NULL\n);return -1;}if(pStack-top -1){return 1;}else{return 0;} }链式栈 1、基本内容 链式栈就是以链表形式进行存储的栈数据结构。 链式栈结构体如下 typedef int data_t; typedef struct node{data_t data; //数据struct node* pNext; //链表指针 }listnode,*stacklink; 链式栈代码的文件构成 linkstack.h数据结构的定义、运算函数接口linkstack.c运算函数接口的实现test.c使用数据结构实现的应用功能代码 链式栈相关函数 1、整个栈的创建和删除 栈结点创建stacklink stacknode_create(void);删除int stack_delete(stacklink* pStack); 2、入栈、出栈 入栈int stack_push(stacklink* pStack,data_t data);出栈int stack_pop(stacklink* pStack,data_t* data); 2、功能实现   2.1 创建/删除栈 2.1.1 栈结点创建 使用链式栈时不是一次性创建一整个栈而是有一个数据入栈就创建一个栈的结点。 具体代码实现如下 /** stacknode_create:创建栈结点* ret NULL--err other--栈的地址* */ stacklink stacknode_create(void){stacklink pStack NULL;//1.申请空间pStack (stacklink)malloc(sizeof(listnode));if(pStack NULL){printf(malloc err\n);return NULL;}//2.初始化memset(pStack,0,sizeof(listnode));pStack-pNext NULL;return pStack; }2.1.1 删除整个栈 删除整个栈就是释放全部的申请空间。 具体代码实现如下 /** stack_delete:释放整个栈* param pStack:要进行删除的栈* ret -1--err 0--success* */ int stack_delete(stacklink* pStack){stacklink point *pStack;//1.栈空间判断if(*pStack NULL){printf(pStack is NULL\n);return -1;}//2.释放空间while(point ! NULL){point point-pNext;free(*pStack);*pStack point;}*pStack NULL;return 0; }2.2 入栈与出栈 2.2.1 入栈 链式栈的入栈就是创建一个新结点并把这个结点进行头插这样出栈时每次访问头就可以实现后进先出的特点。 具体代码实现如下 /** stack_push:入栈,头插法* param pStack:要进行插入的栈* param data:要入栈的数据* ret -1--err 0--success* */ int stack_push(stacklink* pStack,data_t data){stacklink pTmp NULL;//1. 开辟新的结点pTmp stacknode_create();if(pTmp NULL){return -1;}pTmp-data data;//2.开始入栈,//2.1 有栈空间,进行头插if(*pStack ! NULL){pTmp-pNext *pStack;}//2.2 没有栈空间,当前结点就是头*pStack pTmp;//最终都要把头指向最新的结点return 0; } 2.2.2 出栈 链式栈的出栈就访问链表的头访问之后将头部结点进行删除。 具体代码实现如下 /** stack_pop:出栈,取出链表头并释放空间* param pStack:要进行出栈的栈* param data:出栈的数据存放的位置* ret -1--err 0--success* */ int stack_pop(stacklink* pStack,data_t* data){stacklink pTmp NULL;//1.栈空间判断if(*pStack NULL){printf(pStack is NULL\n);return -1;}//2.开始出栈*data (*pStack)-data;//出栈数据pTmp (*pStack)-pNext;free(*pStack);//释放空间*pStack pTmp;//改变链表头return 0; }
http://www.w-s-a.com/news/147361/

相关文章:

  • 有没有做网站的团队电脑版传奇网站
  • 建立企业网站公司医疗创意小产品设计
  • 深圳 做网站 车公庙免费的招标网有哪些
  • 网站在那里备案成都成华区网站建设
  • 做网站选哪家好搜索引擎优化的目标体系包括哪些
  • 做数据可视化的网站ppt2016是制作网页的软件
  • 济宁市建设工程质量监督站网站徐州网站优化推广
  • 北京网站设计多少钱php做商品网站
  • 能打开的网站你了解的彩票网站开发dadi163
  • 手机做网站价格优秀企业网站建设价格
  • 电商网站建设企业做网站的客户多吗
  • 有做思维图的网站吗西安建设市场诚信信息平台网站
  • 网站建设求职具备什么30岁学网站开发
  • 官方网站minecraft北京低价做网站
  • 网站建设报价兴田德润机械加工网络接单
  • 免费的推广网站安卓app制作平台
  • 长春火车站附近美食建设信用卡银行积分兑换商城网站
  • 网站提交网址如何备份wordpress网页
  • 龙腾盛世网站建设医院管理系统
  • 网站切换图片做背景怎么写外贸营销邮件主题一般怎么写
  • 基于html5的网站开发wordpress主题工具
  • php网站开发的成功经历公司网站现状
  • 软件发布网站源码中国企业公示信息网
  • flash 的网站网站型销售怎么做
  • 营销型网站单页网站的域名和密码
  • 建网站保定seo自动发布外链工具
  • 做公众号关注网站做课件用这15大网站
  • 怎么制作公司自己网站店铺设计软件手机版
  • 深圳网站关键词优化公司哪家好怎么选择锦州网站建设
  • 标准网站优势项目合作网站