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

河南省监理协会官方网站建设室内设计知名网站

河南省监理协会官方网站建设,室内设计知名网站,长春网站建设及推广,企业信息网页模板链表是一种常见的数据结构#xff0c;其中运用到了结构体指针#xff0c;链表可以实现动态存储分配#xff0c;换而言之#xff0c;链表是一个功能强大的数组#xff0c;可以在某个节点定义多种数据类型#xff0c;可以实现任意的添加#xff0c;删除#xff0c;插入节… 链表是一种常见的数据结构其中运用到了结构体指针链表可以实现动态存储分配换而言之链表是一个功能强大的数组可以在某个节点定义多种数据类型可以实现任意的添加删除插入节点等。废话结束 前置知识 地址,结构体,malloc函数与循环选择结构。 那我们先来学习一下malloc函数 /* 格式为 (数据类型*)malloc(申请内存大小) malloc函数可以通过传入要申请的内存大小在总堆里申请内存 之后会回归一个地址在其前面的(数据类型*)是将这个地址定义 为要求数据类型。 */int* ptr(int*)malloc(sizeof(int)); /* sizeof是一个传入数据类型返回其所占内存的函数 那么sizeof(int),就是一个int类型的数所占的内存 之后将申请到的内存转换为int类型存储 */int* ptd(int*)malloc(5*sizeof(int)); //申请的内存大小为5*sizeof(int)也就是五个int类型的数字 之后我们来看通过结构体定义的链表节点 typedef struct Node{int data;//存储数据Node* next;//存储下个结点地址 }Node;//将结点名定义为Nodetypedef Node* List;//相当于Node List[] //一个结点数组就是一个链表 将多个结点通过next相连就变成了一个链表。 链表操作 链表操作一般分为六部分建立链表插入结点删除结点查找结点更新结点遍历链表。我们将这六步写为六个函数依次实现。 建立链表         创建一个空链表初始化头节点并将头节点的指针置为NULL(在这里提一下链表是没有规定长度的我们一般在遍历到结点-nextNULL时认为链表结束) void BuildList(List L){node(Node*)malloc(sizeof(Node));//申请一个结点内存//申请内存if(!node){//nodeNULL时cout申请失败\n;return;}node-nextNULL; } 调用函数后链表结构如下一个结点data为空看作头节点 插入结点         插入结点分为两种方式头插法和尾插法我们通过动图来演示一下         尾插法:         头插法 可以比较清楚的看出两者的差异尾插法是将新建结点插入到链表末尾头插法是将新建结点插入到链表头节点后面。下面分别是两种方法的代码实现 void Postinsert(List L){//尾插法Node* node(Node*)malloc(sizeof(Node));//申请一个结点内存L-nextnode;//尾结点更新为node node-nextNULL;//尾结点下一位为NULL } void Preinsert(List L){//头插法Node node(Node*)malloc(sizeof(Node));//申请一个结点内存node-nextL-next;//node结点下一位应为原来头节点下一位 L-nextnode;//将node放入头节点的next位 } 删除结点         找到要删除的节点并将其删除之后将删除节点的两侧相连。         动图演示如下 代码实现如下 void DeleteNode(List L,int t){//删除第t个结点Node* nodeL-next;//定义结点指针Node* preL;//定义结点前一位指针while(--t){//while循环遍历第t个结点if(nodeNULL){//当结点不存在时cout此结点不存在\n;break;}prenode;nodenode-next;//更新prenode指针}free(node);//释放内存 } 查找结点         查找到 data为t 结点位于链表的第几位并return位置         动图演示如下          代码实现如下 int SearchNode(List L,int T){//查找data为T的结点int cnt1;//记录位数Node* nodeL-next;while(node!NULL){if(node-dataT)return cnt;//找到时return位数nodenode-next;cnt;//更新node指针与位数}cout未找到结点\n;return -1; } 更新结点         找到要更新的节点位置并将其data更新。         动图演示如下          void UpdateNode(List L,int a,int b){//将第a个结点data更新为bNode* nodeL-next;//定义结点指针int cnt1;//cnt用于计数while(node!NULL){//while循环遍历找到第a个结点if(cnta){//找到结点时node-datab;//updatebreak; //停止循环}cnt;nodenode-next;//更新cnt和结点指针}if(nodeNULL)//结点不存在时cout该结点不存在\n; } 遍历链表         遍历整个链表输出每个结点的值         动图演示如下 代码实现如下 void ErgodicList(List L){//遍历输出Node* nodeL-next;cout链表遍历结果如下\n;while(node!NULL){coutnode-next ;nodenode-next;}cout\n; } 结束
http://www.w-s-a.com/news/928400/

相关文章:

  • 网站开发的公司wordpress分类目录 模版
  • flashfxp怎么上传对应网站空间wordpress无法创建
  • 建设网站案例分析做网站代理怎么赚钱
  • 唯品会网站建设特色域名备案期间 网站访问
  • 郑东新区建设局网站怎么做万网网站
  • 阿里云上传的网站 服务器路径试用网站开发
  • 做美食原创视频网站网站开发要多钱
  • 怎么做网站作业哪个网站可兼职做logo
  • asp网站搭建教程做网站备案完成之后需要干什么
  • 无锡外贸网站开发兰州网站在哪备案
  • 广州百度网站建设公司天津建设电工证查询网站
  • 网站建设与管理行业发展情况制作网页动态效果
  • wordpress 特色缩略图临沂seo全网营销
  • 隆昌市住房和城乡建设厅网站做网站用什么字体比较好
  • 惠州网站建设设计18款未成年禁用软件ap入口
  • 班级网站 建设目标如何做好网站建设内容的策划书
  • 网站建设与网页设计期末考试清博舆情系统
  • plone网站开发商城网站建设怎么收费
  • 旺旺号查询网站怎么做公司门户网站项目模版
  • 网站免费一站二站四站上海网站怎么备案表
  • 漫画交流网站怎么做开发微信小程序公司
  • 网站建设马鞍山怎么建立局域网网站
  • 开源 网站开发框架哪些网站可以做图片链接
  • 大良制作网站网站设计的能力要求
  • 前端设计除了做网站还能做什么江苏高校品牌专业建设工程网站
  • 做二手房产网站多少钱用户权限配置wordpress
  • 做亚马逊网站需要租办公室吗小型企业网站模板
  • 网站全屏视频怎么做个人公司注册网上申请
  • 如何k掉别人的网站搜索引擎优化与关键词的关系
  • 百度推广 网站吸引力做网站开发的薪酬怎么样