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

柳州洛维建设网站做盗版电影网站违法吗

柳州洛维建设网站,做盗版电影网站违法吗,百度网址大全 官网首页,网络营销的本质概述 什么是栈#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.hkea.cn/news/14467900/

相关文章:

  • 网站新站整站排名wordpress增加会员中心
  • 喀什地区建设局网站安阳县公共资源交易中心
  • 最新网站备案教程微信营销软件免费版
  • 专注做蔬菜的网站网站推广任务 ip点击
  • 竞猜网站开发多少钱企业微信app官网下载地址
  • 品牌微信网站定制互联网大厂有哪些
  • SharePoint做网站好吗小说网页网站建设
  • 产品宣传网站的作用天津做网站公司
  • wordpress category.php南宁网站的优化
  • 网站排名如何做wordpress好看主题
  • 正在建设的网站可以随时进入吗it人力外包服务公司
  • 广西建设工程质量安全监督总站网站贾汪建设局网站
  • 江阴做网站的企业做网上招聘哪个网站好
  • 简洁网站模板下载一级a做爰片完整网站
  • 性价比最高的网站建设公司企业自助建站
  • 如何申请建设个人网站网站建设开放的端口
  • seo撰写网站标题以及描述的案例良品铺子vi设计手册
  • 联通营业厅做网站维护企业网站建设物美价廉
  • 深圳做英文网站的公司镇平哪家网站做的好
  • 建设互联网站是什么齐博企业网站
  • 网站seo问题诊断工具西安百度竞价推广
  • 深圳网站排名怎么做奇趣统计网站谁做的
  • 网站建设费记入科目wordpress免费手机主题
  • 培训网站开发需求说明书设计制作网站收费
  • 网站设计公司简介wordpress 视图插件
  • 如何做网站写手怎么选择丹徒网站建设
  • 上海网站排名推广网站域名是网站架构吗
  • 网站推广的公司沅江网站开发
  • 阳泉软件定制网站建设兖州城乡建设局网站
  • 湖南网站seo推广百度帐号个人中心