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

单向链表(补充)与linux虚拟机网络配置

1.linux虚拟机网络配置

6.下载相应程序:

虚拟机安装应用 sudo apt-get install + (应用名)

2.单向链表 

快慢指针:

定义两个指针(pfast, pslow),让快指针(pfast)先走k步,在让慢指针与快指针一起走动,当快指针所指结点为空时,此时慢指针所指即为倒数第k个结点;

eg: 

//找中间结点
Node_t *mid_TheLink(Link_t *plink)
{if(linkOfEmpy(plink) == 0){return NULL;}Node_t *p = plink->phead, *q = plink->phead ;while(p->pnext){p = p->pnext;if(p->pnext){	p = p->pnext;q = q->pnext;}}return q;
}//找倒数第k个结点
Node_t *find_k_node(Link_t *plink, int k)
{Node_t *pfast = plink->phead;Node_t *pslow = pfast;int i;for(i = 0; i < k; ++i){	if(pfast == NULL){return NULL;}pfast = pfast->pnext;}while(pfast){pfast = pfast->pnext;pslow = pslow->pnext;}return pslow;}

单向链表的插入排序法(默认为升序)

1.保存链表中的第二个结点的地址(ptmp = plink->phead->pnext);

2. 将链表从第一个结点断开(plink->phead->pnext = NULL),确保原链表为有序链表(此时原链表中仅有一个元素,因此一定有序);

3.依次将其余结点中的值先与原链表中的原链表中的元素比较,找到其合适的位置;

若头结点元素大于其(plink->phead->date  >  pinsert->data)则利用链表的头插,插入该结点(pinsert->pnext = plink->phead;

   plink->phead = pinsert;);

否则与原链表中其余元素比较找到合适位置插入:

pinsert->pnext = p->pnext;

p->pnext = pinsert;

重复步骤3直到链表有序;

eg:

//插入排序
void sort_link(Link_t *plink)
{	if(plink->phead == NULL || plink->phead->pnext == NULL){return ;}Node_t *ptmp = plink->phead->pnext;//保存原链表的第二个结点Node_t *pinsert = NULL;plink->phead->pnext = NULL;//原链表从第二个结点前断开,使其有序while(ptmp){pinsert = ptmp;//保存当前结点,防止链表元素丢失ptmp = ptmp->pnext;//指向当前结点的下一个结点if(plink->phead->data >= pinsert->data){pinsert->pnext = plink->phead;plink->phead = pinsert;}else{//当前结点与原链表中的其余结点比较,找到合适位置Node_t *p = plink->phead;while(p->pnext != NULL && pinsert->data > p->pnext->data){p = p->pnext;}pinsert->pnext = p->pnext;p->pnext = pinsert;}}
}

 

 

http://www.dtcms.com/a/313823.html

相关文章:

  • JS--获取事件的子元素与父元素
  • ZooKeeper 深度实践:从原理到 Spring Boot 全栈落地
  • 【unitrix】 7.1 二进制位加法(bit_add.rs)
  • 哪些第三方 Crate 可以直接用?
  • Mac桌面仿制项目--让ai一句话生成的
  • Qt 使用QtXlsx库处理Excel文件
  • Druid学习笔记 01、快速了解Druid中SqlParser实现
  • 赛灵思ZYNQ官方文档UG585自学翻译笔记:General Purpose I/O (GPIO)通用输入 / 输出
  • Linux文件权限管理全解
  • Java Getter 与 C# Getter 比较
  • WPF中引用其他元素各种方法
  • AUTOSAR AR-Explorer正式发布
  • C语言的数组与字符串
  • 从物理扇区到路径访问:Linux文件抽象的全景解析
  • 读写分离有那些坑?
  • 【企业架构】TOGAF概念之三
  • 【Linux | 网络】网络层(IP协议、NAT技术和ICMP协议)
  • 大模型 与 自驾 具身 3D世界模型等相关知识
  • GaussDB 数据库架构师(十二) 资源规划
  • 音视频文案字幕一键提取,免费使用,效率软件!
  • 开源的现代数据探索和可视化平台:Apache Superset 快速指南 Quickstart
  • 大模型探秘–AI 感知世界:从对话到掌控的交互革命
  • 13015计算机系统原理-速记宝典
  • 【Linux操作系统】简学深悟启示录:进程初步
  • Apache IoTDB(3):时序数据库 IoTDB Docker部署实战
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现人脸面部表情的追踪识别(C#代码UI界面版)
  • 商标续展如果逾期了还有办法补救吗?
  • 第1章-信息系统与信息技术发展
  • 案件线索展示与交付项目
  • C++11 nullptr:解决空指针语义模糊的终极方案