华清远见作业第十六天

思维导图:

 双向循环链表头插入:

代码:

Doublelist insert_head(Doublelist head,datatype element)
{//创建新节点sDoublelist s=create_node();if(NULL==s){return head;}s->data=element;//数据存储//判断链表是否为空if(NULL==head){head=s;return head;}else{	Doublelist rear=head->priv;//开始插入s->next=head;//把原来的头放到s的后面head->priv=s;//原来的head前指针指向shead=s;//s成为新的头//形成两个环head->priv=rear;rear->next=head;return head;}}

画图:

 运行效果:

双向循环链表尾插入:

代码:

//尾插
Doublelist insert_rear(Doublelist head,datatype element)
{//创建新节点sDoublelist s=create_node();if(NULL==s){return head;}s->data=element;//数据存储//判断链表是否为空if(NULL==head){head=s;return head;}else{	Doublelist p=head;		//找最后一个节点while(p->next!=head){p=p->next;}//开始插入p->next=s;//把数据存放s放到的最后一位的后面s->priv=p;//s的前一个是原来的最后一个成为新的最后一个ss->next=head;head->priv=s;return head;}}

画图:

 运行效果:

双向循环链表头删除

代码:

//头删除
Doublelist del_head(Doublelist head)
{if(NULL==head){return head;}if(head->next==head){free(head);head=NULL;return head;}else{Doublelist rear=head->priv;//定位到最后一个节点,并存储Doublelist del=head;//要删除的头标志到delhead=head->next;//头节点变成原来的下一个free(del);//释放deldel=NULL;//防止del//形成环rear->next=head;head->priv=rear;return head;}}

画图:

 运行效果:

双向循环链表尾删除

代码:

//尾巴删除
Doublelist del_rear(Doublelist head)
{if(NULL==head){return head;}else if(head->next==NULL){free(head);head=NULL;return head;}else{Doublelist p=head;		//找倒数第二个节点while(p->next->next!=head){p=p->next;}//标记倒数第一个Doublelist del=p->next;free(del);//释放最后一个del=NULL;//防止野指针p->next=head;//新的最后一个指向空head->priv=p;return head;}
}

画图:

运行效果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/311094.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Vue.js实现手机系统检测和页面响应

题目:使用Vue.js实现手机系统检测和页面响应 摘要:本文将介绍如何使用Vue.js来检测用户的手机操作系统,并根据操作系统类型进行相应的页面响应。我们将通过编写一个Vue组件,利用用户代理字符串来检测设备类型,并根据检…

网络层解读

基本介绍 概述 当两台主机之间的距离较远(如相隔几十或几百公里,甚至几千公里)时,就需要另一种结构的网络,即广域网。广域网尚无严格的定义。通常是指覆盖范围很广(远超过一个城市的范围)的长距离的单个网络。它由一些结点交换机以及连接这些…

QString设置小数点精度位数

QString设置小数点精度位数 Chapter1 QString设置小数点精度位数Chapter2 Qt中QString.toDouble有效位数6位问题以及数据小数点有效位数的处理问题一:QString.toDouble有效位只有6位问题二:小数点有效位数的问题 Chapter3 qt QString转Double只显示6位数字的问题(精…

S32K312使用ITCM向FLASH代码区写入数据

使用C40_IP的系列方法向FLASH代码区写入数据时,程序会卡死在读取写操作的状态C40_Ip_MainInterfaceWriteStatus()这个方法中。本文主要介绍S32K312通过ITCM的方式,通过C40_IP的方法向FLASH代码区成功写入数据的方法和步骤。 首先,验证一下C4…

IIS服务器发布PHP网站

IIS服务器,相信开发者都不会陌生,它的英文全称是Internet Information Services,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务,常用于Windows系统的Web项目部署,本篇以PHP项目为例,讲解如…

<JavaEE> TCP 的通信机制(三) -- 滑动窗口

目录 TCP的通信机制的核心特性 四、滑动窗口 1)什么是滑动窗口? 2)滑动窗口的作用是什么? 3)批量传输出现丢包如何处理? 1> 接收端ACK丢包 2> 发送端数据包丢包 4)适用性 TCP的通…

【形式语言与自动机/编译原理】CFG->Greibach->NPDA(1)

本文将详细讲解《形式语言与自动机》(研究生课程)或《编译原理》(本科生课程)中的上下文无关文法(CFG)转换成Greibach范式,再转成下推自动机(NPDA)识别语言是否可以被接受…

Unity坦克大战开发全流程——游戏场景——通关点

游戏场景——通关点 按照这样将场景设置好即可 创建一个通关点特效,并为其添加一个碰撞器。 写一个脚本并将其挂载

Linux:进程退出 与 进程等待wait,waitpid

1.进程退出 1.1 进程退出介绍 进程退出场景 代码运行完毕,结果正确代码运行完毕,结果不正确代码异常终止 进程常见退出方法: 1. 正常终止(可以通过 echo $? 查看进程退出码): 从main return调用exit…

HTML+CSS+JAVASCRIPT实战项目——新年快乐特效

生成动态视频 <!doctype html> <html> <head><meta charset"utf-8" name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, minimum-scale1.0, user-scalableno"/><title>2024新年快乐…

Centos7部署Keepalived+lvs服务

IP规划&#xff1a; 服务器IP地址主服务器20.0.0.22/24从服务器20.0.0.24/24Web-120.0.0.26/24Web-220.0.0.27/24 一、主服务器安装部署keepalivedlvs服务 1、调整/proc响应参数 关闭Linux内核的重定向参数&#xff0c;因为LVS负载服务器和两个页面服务器需要共用一个VIP地…

性能优化-如何提高cache命中率

本文主要介绍性能优化领域常见的cache的命中率问题&#xff0c;旨在全面的介绍提高cache命中率的方法&#xff0c;以供大家编写出性能友好的代码&#xff0c;并且可以应对性能优化领域的面试问题。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &am…