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

朝阳网站建设多少钱唐山网站建设公司哪家好

朝阳网站建设多少钱,唐山网站建设公司哪家好,阿里云服务器做电影网站吗,网站建设与运营主营业务收入单项链表的操作及其实现 很好我们已经明白了顺序表的实现了 如果不明白请看我的数据结构专栏中顺序表的文章 我们来简单的复习一下顺序表 顺序表#xff1a; 1.物理上连续的空间#xff0c;下标作为索引号#xff0c;按位置访问效率高。 2.逻辑上连续的#xff0c;查…单项链表的操作及其实现 很好我们已经明白了顺序表的实现了 如果不明白请看我的数据结构专栏中顺序表的文章 我们来简单的复习一下顺序表 顺序表 1.物理上连续的空间下标作为索引号按位置访问效率高。 2.逻辑上连续的查找某个值从头到尾依次查找。 3.尾插入/删除效率高任意位置的插入/删除后续数据的向后/向前搬移效率低。 4.物理上连续空间条件苛刻 会有内存碎片 申请连续空间可能失败 为啥连续的空间条件苛刻我简单的来个比喻你就明白了如果你想要再一条步行街上买上十间商铺那如果这个步行街已经有一段时间了你买十间连续的商铺肯定比你买十间不连续的商铺要难的多为什么这还用说肯定是其他的商铺主了你无法将十间商铺连这买但是你要是将十间商铺分开买就简单的多了。 依次类推我们的内存也是这样一个道理而在数据结构中我们将这种方法称之为链表。 那么我们正式来开始我们的链表学习 单项链表的结构说明 链式存储 1.利用物理上不连续的空间表示逻辑上的连续 上面商铺的比喻很是形象的说明了这个特性 2.节点结构 也就是数据指针域 也就是我们经常看见的图 3.按位置查找值查找效率低只能按顺序逐一查找 为啥因为你没法一下子定位位置只能一步步的向前走 走到一你才知道二走到二你才知道三这叫真正的走一步看一步 4.插入删除效率高 一般我们的书上都会写效率高但是效率高是有条件的因为我们今天讲的链表叫做单向链表何为单向一句话开弓没有回头箭一旦向前走了就没有办法退回来所以我们在向前移动的时候一定要先考虑清楚。 好的现在我们如果在x位置插入元素必须在x的前一个位置上守着所以如果是寻找值插入删除效率其实也不见得高多少但是如果是头插那效率肯定很高。 如何插入/删除 根据刚才讲的你要思考清楚然后再去插入/删除那么如何思考呢 先说插入 其实插入和做菜一样首先我们要找到插入的位置的前一个你直接指向插入位置没法删其次我们要先准备一个新节点新节点需要数据指针域数据好处理那指针域是哪里的呢 很显然我相信聪明的你一定可以想到用前一个节点的指针域这样我们就制作完成了一个全新的节点而后插入的操作很简单直接将前一个节点的指针域指向新的节点就完成了一个插入操作了。 很好我相信你一定已经被绕晕了 来个图搭配食用 总结一下 插入新节点 1.引入辅助指针pp找到待插入位置的前一个位置。 2.创建新节点。 3.更新新节点。 4.最后更新老节点。 再说删除 还是熟悉的套路先找到删除的前一个位置然后从新定义一个指针将要删除的节点地址先复制一份到新节点上将所选位置的前一个指向它删除位置的下一个节点最后释放掉你需要删除的位置的空间。 很好其实这个过程有点像倒垃圾你先找到垃圾然后找个垃圾桶将你不需要的垃圾放入垃圾桶然后收拾好自己的东西最后再将垃圾倒掉。 转化为代码就是 tmpp-next; p-nexttemp-next; free(tmp);总结一下 删除某个节点 1.引入辅助指针pp找到待删除的前一个节点 2.引入辅助指针备份待删除位置tmp。 3.更新前一个节点然后释放位置。 我们思想方面也可以总结一下 1.核心结构节点 2.开弓没有回头箭不要轻易的pp-next 3.备份思想 带头节点vs带头指针 带头节点 何为带头节点其实所谓带带头结点其实就是在头上多加一个没有值的节点用这个节点来作为链表的开始虽然可能会浪费一点空间但是使用起来很方便。 如图 那么其实我们会发现一个问题当一个节点的使用的空间很大的时候我们用带头结点的方式会有一点浪费空间但是比较好的一点就是它其实比较好操作。 为了解决浪费空间的问题 人们就想出了一个办法用一个指针来表示头节点。 带头指针 其实就是用一个指针来表示头节点虽然方便但是需要时刻的变换 如图 你需要时刻的判断好你的头节点是否指向正确的地方对于初学者来说有些难度。 所以我们还是建议使用带头节点的链表。 单项链表的实现代码 很顺序表的实现一样先写结构定义然后写结构操作的接口而后一一实现这些接口最后对这些接口进行测试。 这样的一套丝滑小连招是我们必不可少的 好的我们来一一的实现吧 结构定义结构操作的接口 #ifndef LINKLIST_H #define LINKLIST_H typedef int Element_t;//实现节点 typedef struct _node {Element_t data;struct _node*next; }node_t;//实现头节点 typedef struct {node_t head;int cout; }Linklist_t; //初始化 Linklist_t* createlinklist(); //释放空间 void releaselinklist(Linklist_t* list);//插入 int insertLinklistHeader(Linklist_t* table, Element_t data);//头插法 int insertLinklistpos(Linklist_t* table,int number, Element_t data);//按位置插入//删除 int deleteLinklistHeader(Linklist_t* table, Element_t data);//打印 void printLinklist(const Linklist_t* table);#endif //LINKLIST_H 对结构定义的实现 #include stdio.h #includelinkList.h#include stdlib.hLinklist_t * createlinklist() {Linklist_t*takeNULL;take(Linklist_t*)malloc(sizeof(Linklist_t));if (takeNULL) {return NULL;}take-cout0;take-head.data0;take-head.nextNULL;return take; }int insertLinklistHeader(Linklist_t *table, Element_t data) {node_t *ptable-head;node_t* newnode(node_t*)malloc(sizeof(node_t));if (newnodeNULL) {return -1;}newnode-datadata;newnode-nextp-next;p-nextnewnode;;table-cout;return 0; }int insertLinklistpos(Linklist_t *table, int number, Element_t data) {//判断边界条件if (number0||numbertable-cout) {return -1;}//寻找到插入位置node_t *ptable-head;int node-1;while (nodenumber-1) {pp-next;node;}//插入node_t *newnode(node_t*)malloc(sizeof(node_t));newnode-datadata;newnode-nextp-next;p-nextnewnode;table-cout;return 0; }int deleteLinklistHeader(Linklist_t *table, Element_t data) {node_t *ptable-head;//找while (p-next) {if (p-next-datadata) {break;}pp-next;}//判断是否为空if (p-nextNULL) {printf(No find);return-1;}//删除node_t*nodep-next;p-nextnode-next;free(node);table-cout--;return 0;}void releaselinklist(Linklist_t *list) {if (list) {node_t* plist-head;node_t* node;while (p-next) {nodep-next;p-nextnode-next;free(node);list-cout--;}printf(link list number %d,list-cout);free(list);}}void printLinklist(const Linklist_t *table) {node_t* ptable-head.next;printf(link list number %d\n:,table-cout);while (p) {printf( %d ,p-data);pp-next;}printf(\n); } 测试 #include stdio.h#include linkList.hint main() {printf(Hello linkList\n);Linklist_t*tablecreatelinklist();if (tableNULL)return -1;for (int i0;i10;i) {insertLinklistHeader(table,i100);}insertLinklistpos(table,3,300);deleteLinklistHeader(table,109);printLinklist(table);releaselinklist(table);return 0; } e);return 0; } 测试结果 好得这篇博客到这里就结束了喜欢记得点一个小小的赞哦(๑′ᴗ‵๑) Lᵒᵛᵉᵧₒᵤ❤
http://www.tj-hxxt.cn/news/131668.html

相关文章:

  • 公司为什么要建立网站关于网站的ppt怎么做
  • wordpress 使用ip访问不了小时seo百度关键词点击器
  • 群晖ds1817做网站新型干法水泥工艺设计计算及实用技术 久久建筑网
  • 四川网站建设服务步骤流程
  • 潍坊市网站大学 生免费商业网站设计
  • 香奈儿网站建设策划书大连网站建设比较好的公司
  • 网站前端与后台必须同时做吗wordpress内容页插件
  • seo查询爱站南通企业网页制作
  • 家具公司网站模板下载小米网站 用什么做的
  • 西宁做网站的公司力请君博d九歌人工智能诗歌写作网站
  • 三明网站seo长春市住房和城乡建设局网站
  • 网站 常见推广WordPress主题Cute主题
  • 长沙企业网站排名优化wordpress高端企业主题
  • 商业网站首页怎么做wordpress评论换行
  • 大朗做网站的300个免费邮箱地址2022
  • 贵阳建网站公司站酷网官网下载
  • 网站加ico网站建设 服务器
  • 温州免费网站建站模板建设商城网站
  • 福州仓山区网站建设邯郸卓匠网络科技有限公司
  • 射阳县住房和城乡建设局网站专门用来制作网页的软件是什么
  • 百度快速收录seo工具软件深圳seo网站排名优化
  • 找网站做网站外包公司该如何运营
  • 知识营销在哪里找给公司做网站优化的人
  • 一个空间放两个网站营销运营推广服务
  • 遵化手机网站设计云匠网
  • 深圳市企业网站建设价格网站 需求文档
  • 双八网站建设drupal还是wordpress好
  • 各大网站开发语言木模板价格
  • 网站提升收录北京it培训机构
  • 手机怎样建立自己网站wordpress百度和分类