C++实现增序含头结点的单链例题:现已知单链表L中结点是按整数值递增排列,试写一算法将值为X的结点插入到表L中,使得L任然递增有序

因为比较简单直接给代码:

<1>.c文件

#include"Module.h"
int main()
{int m = 0;int flag = 0,elect=0;printf("*-----------------------------------------------------------------------------------------*\n");struct STU* List = CreaterList();traversal_List(List);printf("*-----------------------------------------------------------------------------------------*\n\n");while (1){printf("**----------------------------------------------**\n");printf("请选择您想选择的操作:\n");printf("1:插入\t2:退出\t\n");scanf("%d", &elect);switch (elect){case 1:Insert_List(List);traversal_List(List);break;  case 2:exit(0);break;default:printf("非法输入请重新操作");break;printf("**----------------------------------------------**\n");}}
}

<2>.h文件

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
typedef struct STU
{int data;//数据域struct STU* next;//指针域,next是指针,指向结构体STU
};//链表打印函数
int traversal_List(struct STU* head)
{printf("列表信息为:");for (struct STU* p = head->next; p != NULL; p=p->next)//链表循环{printf("%d\t",p->data);}printf("\n");return 1;
}//使用尾插法创建一个链表
struct STU* CreaterList()
{//创建头结点struct STU* head = (struct STU*)malloc(sizeof(struct STU));//将分配到的“struct STU”大小的内存转换为struct STU*类型head->next = NULL;struct STU* p = head;//struct STU类型的指针P指向头指针headprintf("请输入你想创建的链表元素个数:\n");int amount = 0;scanf("%d", &amount);for (int i = 0; i<amount; i++){//创建新结点struct STU* knot = (struct STU*)malloc(sizeof(struct STU));//存储数据printf("请输入第%d个元素的数据:\n",i+1);scanf("%d",&knot->data);//将值存放进knot结点中//P指针指向链表新结点knotp->next = knot;//移动指针Pp = p->next;knot->next = NULL;//确保链表最后一个一个结点的指针域指向NULL,否则它会指向一个不定的值p->next = NULL;//确保p->next始终指向链表最后一个结点}return head;//返回头结点
}//链表插入
int Insert_List(struct STU* List)
{int tempt;for (struct STU* p = List->next; p != NULL; p=p->next)//链表循环{//创建新结点struct STU* knot = (struct STU*)malloc(sizeof(struct STU));printf("请输入想插入的元素数据:\n");scanf("%d",&knot->data);//将值存放进knot结点中tempt=knot->data;if(p==NULL){printf("空表!!\n");return 0;}else{for (p = List->next; p != NULL; p=p->next)//链表循环{if((tempt>=p->data)&&(p->next==NULL))//如果输入时输入值大于等于链表中所有值,直接让最后一个链表的指针指向新结点{//并让最新结点的指针指向空p->next = knot;//移动指针Pknot->next = NULL;return 0;}else if((tempt>=p->data)&&(tempt<=p->next->data))//如果输入值大于等于链表某值,但不是其中的最大值时{knot->next = p->next;p->next    = knot;return 1;}else if(tempt<p->data)//如果第二个元素小于第一个元素{knot->next = p->next;p = knot;return 1;}}}}
}

 <3>运行结果

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

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

相关文章

Python接口自动化测试实战(视频教程+源码)

接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 1、接口自动化测试框架 在Python接口自动化测试中&#xff0c;我们…

论文阅读——llava

Visual Instruction Tuning LLaVA 指令智能体分为两类&#xff1a;端到端的&#xff0c;通过LangChain[1]/LLM[35]协调各种模型的系统。 数据集生成用GPT辅助生成的&#xff0c;具体不写了。 模型结构&#xff1a; input image Xv LLM&#xff1a;Vicuna visual encoder&a…

MySQL的hash索引

MySQL有BTree 索引及Hash索引等索引类型&#xff0c;BTree索引类型是MySQL采用最多的索引类型。Hash索引使用场景比较有限&#xff0c;文章将从Hash索引的底层结构出发&#xff0c;来分析Hash索引的利与弊。 1 hash数据结构 hash数据结构由键、哈希函数及哈希表组成。 键&am…

GBASE南大通用数据库GBase JDBC的格式

对于 GBASE南大通用数据库GBase JDBC &#xff0c;JDBC URL 的格式如下&#xff0c;方括号([, ])里的项是可选的&#xff1a; jdbc:gbase://[host][:port]/[database][?propertyName1][propertyV alue1][&propertyName2][propertyValue2]... 如果没有指定数据库&#xf…

Redis BitMap(位图)

这里是小咸鱼的技术窝&#xff08;CSDN板块&#xff09;&#xff0c;我又开卷了 之前经手的项目运行了10多年&#xff0c;基于重构&#xff0c;里面有要实现一些诸如签到的需求&#xff0c;以及日历图的展示&#xff0c;可以用将签到信息存到传统的关系型数据库&#xff08;MyS…

如何无损放大图片?教你三种方法轻松提高画质

如何无损放大图片&#xff1f;如果你在网上找到的素材图片分辨率低且模糊不清&#xff0c;又找不到原图的出处&#xff0c;那么如何无损放大图片呢&#xff1f;以下三个技巧可以帮你解决这个问题。 技巧一&#xff1a;使用专业的图像处理工具 水印云一款专业的图像处理工具可以…

MybatisPlus代码生成器

MybatisPlus代码生成器可以根据设计好数据库表&#xff0c;自动帮助我们完成对应表的controller层&#xff0c;service层&#xff0c;entiy层和mapper层的基础代码&#xff0c;简化开发 1&#xff09;导入依赖 <dependency><groupId>org.apache.velocity</grou…

Flutter本地化(国际化)之App名称

文章目录 Android国际化IOS国际化 Flutter开发的App&#xff0c;如果名称想要跟随着系统的语言自动改变&#xff0c;则必须同时配置Android和IOS原生。 Android国际化 打开android\app\src\main\res\values 创建strings.xml 在values上右键&#xff0c;选择New>Values Res…

6. 行为模式 - 观察者模式

亦称&#xff1a; 事件订阅者、监听者、Event-Subscriber、Listener、Observer 意图 观察者模式是一种行为设计模式&#xff0c; 允许你定义一种订阅机制&#xff0c; 可在对象事件发生时通知多个 “观察” 该对象的其他对象。 问题 假如你有两种类型的对象&#xff1a; ​ 顾…

MyBatis关联查询(三、多对多查询)

MyBatis关联查询&#xff08;三、多对多查询&#xff09; 需求&#xff1a;查询角色及角色赋予的用户信息。 分析&#xff1a;一个用户可以拥有多个角色&#xff0c;一个角色也可以赋予多个用户&#xff0c;用户和角色为双向的一对多关系&#xff0c;多对多关系其实我们看成是…

云闪付支付:一种新型的移动支付方式

随着科技的发展&#xff0c;我们的生活方式也在不断地改变。其中&#xff0c;移动支付已经成为我们生活中不可或缺的一部分。而在这个领域中&#xff0c;云闪付支付无疑是一种新型的、高效便捷的支付方式。那么&#xff0c;云闪付支付究竟是什么&#xff0c;它又有哪些特点呢&a…

华为交换机配置BGP的基本示例

BGP简介 定义 边界网关协议BGP&#xff08;Border Gateway Protocol&#xff09;是一种实现自治系统AS&#xff08;Autonomous System&#xff09;之间的路由可达&#xff0c;并选择最佳路由的距离矢量路由协议。早期发布的三个版本分别是BGP-1&#xff08;RFC1105&#xff0…

树莓派-Pico控制舵机

目录 前言一、SG90舵机是什么&#xff1f;参数介绍工作原理 二、与舵机信号线的接线图三、给树莓派Pico注入灵魂&#xff08;代码&#xff09;总结 前言 这价格便宜的树莓派Pico总觉得应该拿来做点什么&#xff0c;它总不能只用来点亮几个灯就没别的用途了吧&#xff0c;所以就…

一键启动脚本,Karfka,RocketMQ

文章目录 前言KarfkaRocketMQ 前言 服务器上有一些应用&#xff0c;启动步骤比较繁琐&#xff0c;需要依次启动多个服务。服务之间存在依赖关系。例如&#xff1a;必须服务1启动成功才能启动服务2。现将启动服务的步骤写成了sh脚本&#xff0c;大家可以参考这个脚本写一个自己…

Python的内存管理与垃圾回收机制

内存管理 Python的内存管理主要由Python的内存管理器负责。Python的内存管理器会负责为对象分配内存&#xff0c;并在不再需要时将其回收。这种管理方式通常称为“自动内存管理”。 在Python中&#xff0c;当你创建一个对象&#xff08;例如&#xff0c;一个列表或字典&#…

C++ Qt开发:Charts绘图组件概述

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍QCharts二维绘图组件的常用方法及灵活运用。 …

Redis 6 性能大揭秘:如何优化缓存命中率?

Redis 6的性能优化&#xff0c;特别是关于如何优化缓存命中率。 这篇文章会包含10个代码示例&#xff0c;帮助深入理解和应用相关的技巧 1、 监控缓存命中率 在优化之前&#xff0c;首先要了解当前的缓存命中率。Redis提供了INFO命令来查看性能指标&#xff0c;包括命中率。…

NVMe介绍

NVMe介绍 1 概述2 操作原理2.1 Queue基本原理2.2 Admin与I/O Queue2.3 Submission与Completion Queue2.4 Submission与Completion Queue对应关系 3 多路径I/O和命名空间共享3.1 1Port1Controller3.2 1Port2Controller3.3 2Port2Controller3.4 SR-IOV 本文属于《 NVMe协议基础系…

Quartz.net 正则表达式触发器

1、创建项目 项目类型控制台应用程序&#xff0c;.Net Framework框架版本 4.7.2 2、引入框架 NuGet\Install-Package Quartz -Version 3.8.0 3、创建Job 自定义Job实现接口IJob&#xff0c;在Execute方法实现定时逻辑&#xff0c; using Quartz; using System; using Sys…

Angular.js 实现带手柄自由调整页面大小的功能

因为目前是处于在angular项目中&#xff0c;所以下面分别一个记录简易的angular.js和在angular项目中使用的版本&#xff0c;仅供大家参考。 Angular.js <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta …