删除链表奇数元素

UE5新手必看:3种UI定位方法实战(含蓝图配置截图) 本文为UE5新手详细解析了三种核心UI定位方法:屏幕空间、场景空间和世界空间。通过实战蓝图配置与控件操作,指导开发者如何根据HUD、角色血条、3D物体标记等不同应用场景,正确选择并配置UI的定位方式,以实现清晰的信息传递与沉浸式体验。 阅读详情
/*
功能:
    删除队列中的奇数元素
思路:
    队列是先进先出,前面删除后面插入的了,所以呢
    我们就从前面开始,删除,偶数的话就插到队尾,奇数就不管咯
    结束条件呢,就是原来的队尾都删除了吧
*/

// 如果要用链队好了
#include<stdlib.h>
#include<stdio.h>

typedef struct qnode
{
    int data;
    struct qnode *next;
} QNode;

typedef struct
{
        QNode *front;
        QNode *rear;
} QList;

// 打印队列
void show(QList *q)
{
    QNode * head = q->front;
    if(q->rear == NULL)
    {
        printf("NULL\n");

    }
    else{
        while(head!=q->rear->next)
        {
            printf("%d ", head->data);
            head = head->next;
        }
        printf("\n");
    }

}
// 进队
void enQueue(int val, QList *q)
{
    QNode *s;
    s = (QNode *)malloc(sizeof(QNode));
    s->data = val;
    s->next = NULL;
    if(q->rear ==NULL) //链队为空,新节点是对首也是队尾
        q->front = q -> rear = s;
    else
    {
        q->rear ->next = s;
        q->rear = s;
    }
}

int deQueue(QList *q)
{
    QNode *t;
    if(q->rear == NULL)//空
    return 0;
    t = q->front;
    if(q->front == q -> rear) //一个节点
        q->front = q->rear = NULL;
    else
        q ->front = q->front->next; //多个节点
    free(t);
     return 0;

}
// 初始化
QList * init()
{
    QList * q = (QList *)malloc(sizeof(QList));
    q->front = q->rear = NULL;
    return q;
}

int deleteodd(QList *q)
{
         QNode * begin;
        QNode * end = q->rear;
        if(q->rear==NULL)//为空就不处理了
            return 0;
        begin = q->front;
        end = q->rear;
        while(begin!=end)
        {
           // int data = begin->data;
           begin = q->front;
            if( begin->data%2==0) //偶数
            {
               // deQueue(q);
              //  enQueue(data,q);

                  // 不出队入队
                  if(q->front == q->rear) //反正要保留,不需要问是不是空,如就一个元素,就会直接跳出循环了
                    break;
                else
                {
                    q->front = q->front->next; //头往后移
                    begin->next = NULL; //当前节点呢,就尾插法插入链表
                   q-> rear->next = begin; // 尾指针后移
                   q-> rear = begin;
                }
            }
            else
            {
                    QNode *t;
                    t = q->front;
                    if(q->front == q -> rear) //一个节点
                        q->front = q->rear = NULL;
                    else
                        q ->front = q->front->next; //多个节点
                    free(t);
                    //deQueue(q);
            }

        }
        return 0;

}

int main()
{
    int i;
    int n;
   // --------------创建链表开始
    printf("num:");
    scanf("%d",&n);

    QList *q = init();
    for(i = 0;i<n;i++)
    {
        int val;
        scanf("%d",&val);
        enQueue(val,q);
    }
    printf("原始的\n");
    show(q);
    //---------------创建结束


    // -------------删除 看着一个函数就行了   我把所有的功能能挪到一个函数了
    deleteodd(q);
    //-------------  显示
    show(q);
     return 0;
}

QQ也能连接OpenClaw啦!手机QQ远程操控本地AI保姆级教程 2026年最新OpenClaw与QQ连接教程发布,支持手机远程操控本地AI。腾讯官方推出QQ Bot插件,无需服务器即可实现三步绑定。教程提供三种连接方案:新手首选的扫码连接(10分钟搞定)、稳定的QQ群机器人方案,以及公网接入方案。详细步骤包括版本更新、插件安装、扫码绑定和功能测试,并附常见问题解决方案。该功能让用户通过QQ指令即可实现文件整理、文档生成等电脑操作,真正实现"手机发指令,电脑自动干"。 阅读详情

相关推荐

Matlab子图排版终极指南:从tight_subplot到tiledlayout的实战对比

本文深入对比Matlab中两大子图排版工具:社区经典函数tight_subplot与官方现代布局管理器tiledlayout。针对默认subplot产生的子图间距与边缘距离问题,详细解析两者的设计哲学、参数控制与实战应用,帮助用户根据版本与需求选择最佳方案,实现高效、精确且美观的多子图排版。

weixin_29048309的博客 360

【数据结构系列】双向链表

课后习题 上一篇文章中我们说到单链表,然后最后有一道习题,不知道大家有没有做出来,为了照顾一些还不太会的同学,这里专门对这道题进行一个简单的讲解,先来看看原题内容: 有一个带头结点的单链表L = {a1,b1,a2,b2,…,a(n),b(n)},试设计一个算法将其拆分成两个带头结点的单链表L1和L2,L1 = {a1,a2,…,a(n)},L2 = {b(n),b(n - 1),…,b(1)},...

。。。 5789

MRI脑影像分析从哲学到技术:一文搞懂VBM预处理基本原理(全网最详细解析)

   分析大脑解剖学差异最常用方法之一是基于体素的形态学方法(voxel-based morphometry, VBM)。 VBM的基本思想是测量大脑组织,尤其是灰质的局部浓度的差异。在大脑的每个体素处进行操作,然后在两个或多个实验组之间进行统计比较,从而在受调查的组之间建立特定大脑区域中脑组织浓度的统计学显着差异。 VBM分析基于(高分辨率)MRI脑部扫描,涉及大量处理步骤,主要是空间归一化,分割,平滑和统计分析,最终结果是统计图,显示了各组之间组织类型明显不同的区域[^1]。 参考 [^1] ..

意疏的学习笔记 3万+

删除带头结点的单链表的奇数结点

【单链表算法】设带头结点的非空单链表 L,设计一个算法删除 L 中奇数序号 的结点,即删除 L 中第 1、3、5…结点。 #include<stdio.h> #include<malloc.h> typedef struct node { int data; struct node* next; }node; // 定义结构体 node* creat(int l...

weixin_45963815的博客 4228

手把手教你用神经网络优化电机控制:从Simulink仿真到实际部署

本文提供了一套完整的工程实践指南,详细讲解了如何将神经网络应用于电机控制,从Simulink仿真建模、轻量级网络设计,到关键的模型量化与代码生成,最终实现向DSP/FPGA硬件的实际部署。文章直面实时性、精度与资源限制等核心工程挑战,为工程师提供了从理论到落地的清晰路径和实用避坑策略。

weixin_29246195的博客 226

LMX2820即时校准实战:从失锁到稳定锁频的完整指南

本文详细解析了LMX2820锁相芯片在高频段(11.3-22.6GHz)易出现随机失锁问题的根源,并提供了即时校准(InstCal)的完整实战指南。通过寄存器编程、Index例程和校准配置的关键步骤,确保从失锁到稳定锁频的高可靠性,大幅提升射频合成器在通信与测试测量应用中的性能。

bert9linguist的博客 958

单链表算法 删除 L 中第 1、3、5…结点。

设带头结点的非空单链表 L,设计一个算法删除 L 中奇数序号 的结点,即删除 L 中第 1、3、5…结点。 删除单链表中的奇数节点可以运用跳格的思想,跳过奇数节点——从头结点开始,将连接指针指向下一个节点的连接指针指向的节点 以下包括节点的创建和删除(自带各个步骤的测试) #include<iostream> #include<stdio.h> #include<stdlib.h> using namespace std; typedef int Elemtype; t

zhazha007_的博客 1141

从零解析:富斯i6遥控器与STM32的IBUS协议通信实战

本文详细解析了富斯i6遥控器与STM32通过IBUS协议通信的实战指南,涵盖硬件准备、协议解析、驱动实现及常见问题解决。特别适合机器人及智能小车开发者,提供低成本、高可靠性的无线控制方案,助力快速实现多通道控制功能。

weixin_29193359的博客 440

单链表-删除单链表L中奇数号节点(双指针法)

题意: 有一个带头节点的单链表L,设计一个算法,删除其中第1,3,5,7号…节点,即删除奇数号的节点。 单链表的存储结构: typedef struct LinkList{ int data; LinkList * next; } 分析: 要删除肯定要定义两个指针pre,p,但是这里是删除奇数号节点,也就是说,要隔一个才删除。 以往后移操作都是,p=p->next 但是,这是p指向的节点的删除了。free(q),这里就不能用这个了, 但是可以用前驱节点pr

muyu_muyu的博客 3229

锂电池SOH预测 | 基于BP神经网络的锂电池SOH预测(附matlab完整源码)

锂电池SOH预测 | 基于BP神经网络的锂电池SOH预测(附matlab完整源码)

天天酷科研的博客 1113

YOLOv8改进 | Conv篇 | 利用YOLO-MS的MSBlock轻量化网络结构(既轻量又长点)

本文给大家带来的改进机制是利用YOLO-MS提出的一种针对于实时目标检测的MSBlock模块,我们将其用于C2f中组合出一种新的结构,来替换我们网络中的模块可以达到一种轻量化的作用,我将其用于我的数据集上实验,包括多个类别的数据集,其在轻量网络结构的同时,却能够提高一定的mAP精度,所以这是一种十分高效的模块,该网络结构非常适合那些模型精度已经无法提到,想要从轻量化模型的角度入手的读者使用。欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。

Snu77的博客 6091

1.删除链表的奇数节点 2.删除链表的偶数节点

1.删除链表的奇数节点 /* * 删除奇数节点 */ public static ListNode deleteOddNode(ListNode head) { if (head == null) return null; ListNode dump = new ListNode(-1, null); dump.next = head; ListNode pre...

qfc8930858的博客 3058

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

例题:C++中删除链表中的奇数元素

C++中表示链表的容器是forward_list。 首先给链表赋一个初始值,用列表初始化的方法:forward_list lst{1,2,3,4,5,6,7}; 删除链表中元素的语句是erase_after。如lst.erase_after(iter),iter是一个迭代器,和erase语句不同的是,erase删除的是这个迭代器所指元素,而erase_after删除的是迭代器所指后面的那个元素

azusalssoo的博客 3375

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

1、输入一组整型元素序列,建立带头结点的单链表。  2、要求:  (1)实现链表的遍历、查找、插入、删除;  (2)将链表中的元素分解成两个带头结点的单链表,其中一个全部存放奇数,另一个全部存放偶数。

1、输入一组整型元素序列,建立带头结点的单链表。  2、要求:  (1)实现链表的遍历、查找、插入、删除;  (2)将链表中的元素分解成两个带头结点的单链表,其中一个全部存放奇数,另一个全部存放偶数。用C语言实现,急,谢谢 ...

weixin_44347677的博客 3370

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

6-3 单链表删除奇数(*)

已知单链表的结点结构定义如下: typedef struct _NODE_ { int data; struct _NODE_ *next; } NODE; 说明:data 为数据域。next 为指针域,指示后继结点。 请编写函数,删除带头结点的单链表中所有数据元素为奇数的结点。 函数原型 void RemoveOdd(NODE *head); 说明:参数 head 为单链表的头指针。函数将删除单链表中所有值为奇数的数据元素。 裁判程序 int main() { NODE *

m0_61049596的博客 3679

单链表专题练习

单链表专题练习

qq_29688979的博客 2375

c++语言偶数分离,在C++的链表中分离偶数和奇数节点

所以,我自学数据结构和算法。在解决一些问题时,我遇到了下面的问题,我必须分离链表的奇偶节点。在C++的链表中分离偶数和奇数节点以下是问题陈述:鉴于整数链表,编写一个函数来修改链表,使所有偶数在修改后的链接列表中的所有奇数出现之前。此外,保持偶数和奇数的顺序相同。我知道这个问题被问了很多次。但我仍然无法找到答案。我知道,有多种方法来解决这个问题,但试图以如下方式1. Traversing over ...

weixin_39997037的博客 824

单链表的创建(头插尾插),表长,输出,插入,删除,查找,逆置,分解长两个链表(奇数偶数链表),查找倒数第k个元素,产出相同元素

//暂时没有什么事情,这段时间准备把数据结构上东西都实现以下 #include #include #include typedef struct ListNode { int data; struct ListNode *next; } ListNode,*pListNode; pListNode  createFromHead(int len) ; //头插法

JackyLau的专栏 1221

在单链表写入一组数据代码_从键盘输入一组数据建立单链表,然后输出奇数位上的元素。...

匿名用户1级2018-12-17 回答#include#include#define LEN sizeof(struct Node)struct Node{int num ;struct Node *next;};int main(){struct Node *creat();struct Node *del(struct Node *head);void print(struct Node *)...

weixin_29871897的博客 1017

【c语言篇】每日一题-pta-实验11-2-6 奇数值结点链表

【代码】【c语言篇】每日一题-pta-实验11-2-6 奇数值结点链表。

clriszjgson的博客 657

求问代码哪里有问题?

/* 正整数构成的线性表存放在单链表中,编写算法将表中的所有的奇数删除 */ #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; typedef struct LNode{ int data; struct LNode next; }LNode; LNode creat(int n){ LNode *Link; LNode p1,p2; int d...

weixin_43635935的博客 184

2.1 实验1 线性表应用三、双向链表

目的要求 1.掌握双向链表的存储结构及其实现。 2.掌握双向链表的插入与删除算法的程序实现。 实验内容 1.利用尾插法建立一个双向链表。 2.遍历双向链表。 3.实现双向链表中删除一个指定元素。 4.在非递减有序双向链表中实现插入元素e仍有序的算法。 5.判断双向链表中元素是否对称,若对称返回 1,否则返回 0。 6.设元素为正整型,实现算法把所有奇数排列在偶数之前。 7.在主函数中设计一个简单菜单,调用上述算法。 实验说明 1.双向链表的类型定义 typedef int ElemType; // 元

weixin_45616238的博客 761

设head指向一个非空单向链表,其数据域的值不重复,且均为正整数,奇数放在偶数之前(C语言实现)

思路:将一根链表分成两根,一根偶数链,一根奇数链,我们在原链表上找数据域是奇数的结点,找到删掉(不free),然后头插。 找删插的过程 while (p) { if (p->date % 2) { pk = p; if (p == h) { p=h = h->next; } else { q->next = p-&gt...

hxy123pr的博客 422

单链表删除所有值为x的元素_单链表常见基础算法(三)

将带头结点的单链表A分解成两个带头结点的单链表A和B,使得A表中含有原表中序号为奇数的元素,B表中含有原表中序号为偶数的元素,且保持相对顺序不变LinkList 将C={a1,b1,a2,b2…an,bn}线性表采用带头结点的单链表存放,设计一个算法,将其拆分为两个线性表,使得A={a1,a2,…an},B={bn,…b2,b1}//A采用尾插法,B采用头插法。在插入过程中,先插入一次A,再插入一...

weixin_39963255的博客 599

从容器删除元素

删除一个元素 list lst = {0,1,2,3,4,5,6,7,8,9}; auto int = lst.end(); while(it != lst.end())   if(*it%2)//若元素为奇数   it = lst.erase(it)//删除此元素 else ++it;

song的博客 573

初见链表之后,做点作业

初见链表之后,做点作业 题目 链表实验 1、创建,数据来自文件 2、显示 3、查找(显示比较次数) 4、插入 5、删除(显示比较次数) 6、将链接存储线性表逆置,即最后一个结点变成第1个结点,原来倒数第2个结点变成第2个结点,如此等等。 [解题思路] 从头到尾扫描单链表L,将第1个结点的next域置为NULL,将第2个结点的next域指向第1个结点,将第3个结点的next域指向第2个结点,如此等...

As_sBomb的博客 566
上一篇: Sum of Two Integers
下一篇: 删除链队奇数元素
github_30830155
博客等级 码龄11年 5粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值