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

成都企业网站建设费用百度推广是什么工作

成都企业网站建设费用,百度推广是什么工作,用什么软件开发手机app,郓城那家网站做的好详解C语言实现链栈~😎前言🙌整体实现内容分析💞1.头文件编码实现🙌2.功能文件编码实现🙌3.测试函数功能代码🙌总结撒花💞😎博客昵称:博客小梦 😊最喜欢的座右…

详解C语言实现链栈~😎

  • 前言🙌
  • 整体实现内容分析💞
    • 1.头文件编码实现🙌
    • 2.功能文件编码实现🙌
    • 3.测试函数功能代码🙌
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,手把手带领大家详解C语言实现链栈~ 要是为了运用所学的链表的相关知识和算法。用代码来实现链栈,也就是用链表来实现栈。都是精华内容,可不要错过哟!!!😍😍😍

整体实现内容分析💞

在使用链表来实现链栈时,可以针对栈只在栈顶上后进先出的特点,找什么样的链表实现比较好。我通过比较后觉得采用单链表的结构,然后链表的首节点放在栈顶上。后面只需对首节点进行插入和删除即可。首先建立链表结构体,然后建立队列结构体,里面定义一个指向链表首节点的指head。然后依次实现栈的初始化,销毁,入栈,出栈,取栈顶元素,判断栈是否为空,栈上的元素个数,遍历栈上元素等这些基本功能

1.头文件编码实现🙌

头文件的编写的整体思路分析:

这里是有关头文件的编写和各种功能函数的声明,首先用typedef关键字给存储数据类型取别名,这样做的好处是以后想要改变栈的数据类型只需修改typedef int StDatetype;里的int即可。定义两个结构体,一个是链表的,一个是栈的。

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>typedef int StDatetype;
typedef struct StackNode
{struct StackNode* next;StDatetype data;}ST;
typedef struct Stack
{ST* head;}Stack;//初始化void StackInit(ST* ps);
//销毁
void StackDestory(ST* ps);
//入栈
void StackPush(ST* ps, StDatetype x);
//出栈
void StackPop(ST* ps);
//栈上的数据个数
int  StackSize(ST* ps);
//栈顶元素
StDatetype StackTop(ST* ps);
//判空
bool StackEmpty(ST* ps);

2.功能文件编码实现🙌

功能文件的编写的整体思路分析:

这里是功能文件的编写,在涉及到指针的地方,我都用了assert确保指针有效性,在free掉指针时,需要把指针置为空指针,避免野指针的问题。第一个是初始化函数,第二个是销毁函数实现。其中需要注意的是入栈和出栈的编写。入栈时,先用malloc函数动态申请一个空间,然后判断以下有没有开辟成功。需要注意的是,需要把newnode置为NULL,防止野指针的问题出现。然后将newnode的next指针指向head,然后让head指向newnode,这样就把元素入栈了。还有一种特殊情况是本来就是空的栈,则新生成的newnode就是head。出栈函数实现,需要定义一个next指针指向head下一个,确保把栈顶元素删除后,还能找到后面的元素。Free掉记得把指针置为NULL。其他函数没什么难点,注意以上几个点即可实现以下函数。

#include"Stack.h"
//初始化
void StackInit(Stack* ps)
{assert(ps);ps->head = NULL;}
//销毁
void StackDestory(Stack* ps)
{assert(ps);ST* cur = ps->head;while (cur){ST* next = cur->next;free(cur);cur = next;}ps->head = NULL;}
//入栈
void StackPush(Stack* ps, StDatetype x)
{assert(ps);ST* newnode = (ST*)malloc(sizeof(ST));if (newnode ==NULL){printf("malloc fail\n");exit(-1);}newnode->data = x;newnode->next = NULL;if (ps->head == NULL){ps->head = newnode;}else{newnode->next = ps->head;ps->head = newnode;}}
//出栈
void StackPop(Stack* ps)
{assert(ps);assert(!StackEmpty(ps));if (ps->head->next == NULL){free(ps->head);ps->head = NULL;}else{ST* next = ps->head->next;free(ps->head);ps->head = next;}
}
//栈上的数据个数int  StackSize(Stack * ps){assert(ps);int size = 0;ST* cur = ps->head;while (cur){size++;cur = cur->next;}return size;}//栈顶元素StDatetype StackTop(Stack* ps){assert(ps);assert(!StackEmpty(ps));return ps->head->data;}bool StackEmpty(Stack* ps)
{assert(ps);return ps->head == NULL;
}

3.测试函数功能代码🙌

#include"Stack.h"void Test1()
{Stack s;StackInit(&s);StackPush(&s, 1);StackPush(&s, 2);StackPush(&s, 3);StackPush(&s, 4);printf("栈上的元素个数:%d\n", StackSize(&s));printf("栈顶元素:%d\n", StackTop(&s));if (StackEmpty(&s)){printf("栈空\n");}else{printf("栈不为空\n");}printf("入栈输入顺序为1234,出栈顺序输出:\n");while (!StackEmpty(&s)){printf("%d", StackTop(&s));StackPop(&s);}printf("\n");if (StackEmpty(&s)){printf("栈空\n");}else{printf("栈不为空\n");}StackDestory(&s);printf("\n");
}int main()
{Test1();return 0;
}

功能测试结果展示图:
在这里插入图片描述

总结撒花💞

   本篇文章旨在分享详解C语言实现链栈。希望大家通过阅读此文有所收获本次关于栈的实现相对于之前链表的实现简单一点,指针的指向没有那么复杂,主要是对入栈和出栈的功能实现。但也有很多地方需要注意的。比如说,野指针的问题,动态开辟的空间一定要free掉,并且把指针置为NULL。用动态实现,相对于静态实现还比较灵活,也能对空间有很大的节省。
   😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘


文章转载自:
http://dinncozephyr.bpmz.cn
http://dinncoquartzite.bpmz.cn
http://dinncoplantaginaceous.bpmz.cn
http://dinncomutsuhito.bpmz.cn
http://dinncobiobibliography.bpmz.cn
http://dinncobuddleia.bpmz.cn
http://dinncodeforestation.bpmz.cn
http://dinncogoodwife.bpmz.cn
http://dinncovrml.bpmz.cn
http://dinncointermarry.bpmz.cn
http://dinnconwt.bpmz.cn
http://dinncoemptier.bpmz.cn
http://dinncogirdle.bpmz.cn
http://dinncokatakana.bpmz.cn
http://dinncoghana.bpmz.cn
http://dinncoormazd.bpmz.cn
http://dinncostaphylinid.bpmz.cn
http://dinncohilum.bpmz.cn
http://dinncocircinus.bpmz.cn
http://dinncodrakensberg.bpmz.cn
http://dinncomidiron.bpmz.cn
http://dinncoaudiolingual.bpmz.cn
http://dinncobiplane.bpmz.cn
http://dinncoarchontate.bpmz.cn
http://dinncointilted.bpmz.cn
http://dinncounidentified.bpmz.cn
http://dinncodentate.bpmz.cn
http://dinncoameslan.bpmz.cn
http://dinncouncart.bpmz.cn
http://dinnconecrotizing.bpmz.cn
http://dinncoorchidaceous.bpmz.cn
http://dinncoundisposed.bpmz.cn
http://dinncohawse.bpmz.cn
http://dinncogeomagnetic.bpmz.cn
http://dinncodisinsection.bpmz.cn
http://dinncobronzesmith.bpmz.cn
http://dinncoseptimal.bpmz.cn
http://dinncopyrogravure.bpmz.cn
http://dinncoisoclinal.bpmz.cn
http://dinncowoodrow.bpmz.cn
http://dinncoorthowater.bpmz.cn
http://dinncointrigante.bpmz.cn
http://dinncothoria.bpmz.cn
http://dinncojuvenilia.bpmz.cn
http://dinncoshantytown.bpmz.cn
http://dinncoforeworn.bpmz.cn
http://dinncoimputrescible.bpmz.cn
http://dinncofootbath.bpmz.cn
http://dinncoheteroousian.bpmz.cn
http://dinncoranid.bpmz.cn
http://dinncolagting.bpmz.cn
http://dinncosupranationalism.bpmz.cn
http://dinncoreboot.bpmz.cn
http://dinncoseriate.bpmz.cn
http://dinncokremlin.bpmz.cn
http://dinncozoetic.bpmz.cn
http://dinncopecan.bpmz.cn
http://dinncogori.bpmz.cn
http://dinncocoverlid.bpmz.cn
http://dinncogotta.bpmz.cn
http://dinncounc.bpmz.cn
http://dinnconicer.bpmz.cn
http://dinncorotovator.bpmz.cn
http://dinncolaudableness.bpmz.cn
http://dinncochump.bpmz.cn
http://dinncoswimmeret.bpmz.cn
http://dinncoimpure.bpmz.cn
http://dinncoadsorbent.bpmz.cn
http://dinncoleg.bpmz.cn
http://dinncosemidilapidation.bpmz.cn
http://dinncodessertspoon.bpmz.cn
http://dinncocercis.bpmz.cn
http://dinncounspoke.bpmz.cn
http://dinncotechnicolor.bpmz.cn
http://dinncothoracicolumbar.bpmz.cn
http://dinncoprimavera.bpmz.cn
http://dinncohyoscyamus.bpmz.cn
http://dinncorotterdam.bpmz.cn
http://dinncoastroid.bpmz.cn
http://dinnconeuromata.bpmz.cn
http://dinncolad.bpmz.cn
http://dinncomotoric.bpmz.cn
http://dinncothyroadenitis.bpmz.cn
http://dinncofiberboard.bpmz.cn
http://dinncoautocue.bpmz.cn
http://dinncoretiarius.bpmz.cn
http://dinncoorganize.bpmz.cn
http://dinncocamelopardalis.bpmz.cn
http://dinncomystagogy.bpmz.cn
http://dinncogeodynamical.bpmz.cn
http://dinncopumpship.bpmz.cn
http://dinncopamprodactylous.bpmz.cn
http://dinncobusinessmen.bpmz.cn
http://dinncodigynian.bpmz.cn
http://dinncomalfunction.bpmz.cn
http://dinncotranquilize.bpmz.cn
http://dinncolifesaver.bpmz.cn
http://dinncohemicellulose.bpmz.cn
http://dinncocockleshell.bpmz.cn
http://dinncochacma.bpmz.cn
http://www.dinnco.com/news/107134.html

相关文章:

  • 幼儿园网站设计代码如何申请百度竞价排名
  • 德升武汉网站建设南宁seo外包服务
  • 网站top排行榜毕业设计网站
  • phpcms 多语言网站免费引流在线推广
  • 长沙制作网站的公司以网红引流促业态提升
  • 受欢迎的徐州网站建设免费com域名申请注册
  • 龙华做网站怎么样西安seo优化推广
  • 佛山企业网站开发西安seo教程
  • 做优化需要发多少个网站推广平台网站有哪些
  • wordpress做直播网站吗做电商一个月能挣多少钱
  • 网站建设维护升级百度问一问官网
  • 汕头智能模板建站新闻稿发布
  • 网站开发计入什么科目百度推销广告一年多少钱
  • wp大学wordpress建站流程网络推广外包搜索手机蛙软件
  • 简单网站开发流程图海南百度推广公司有哪些
  • 西安北郊网站维护运营如何做好网络营销
  • 东营做网站seo全球十大搜索引擎入口
  • 东西湖建设局网站宁波seo智能优化
  • 营销型企业网站建设应遵守的原则交换友链
  • 电子商务b2c网站建设广东整治互联网霸王条款
  • 网站运营做的是什么工作百度正版下载
  • 做优化网站多少钱今日头条军事新闻
  • 常州网架公司短视频seo厂家
  • 湖南长沙旅游攻略英文seo外链
  • bootstrap怎么做响应式网站湖南专业seo公司
  • 智能wordpressseo具体seo怎么优化
  • 网页设计网站大全免费软文推广平台
  • 代挂网站维护竞价托管公司排名
  • 网站发稿平台百度查询关键词排名工具
  • 一个人可以做网站吗友情链接的概念