数据结构10

news2024/9/22 9:54:54

文章目录

  • 两两交换链表中的节点
  • 括号生成I
  • 2009 408应用题42题

两两交换链表中的节点

在这里插入图片描述

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    //交换节点并递归
    ListNode* swapPairs(ListNode* head) {
        if(!head||!head->next)return head;//边界条件
        //交换
        ListNode* temp = head->next;
        head->next=swapPairs(temp->next);
        temp->next=head;
        return temp;
    }
};

head->next=swapPairs(temp->next);
这里需要注意一下递归出现的位置

括号生成I

在这里插入图片描述

class Solution {
public:
    vector<string> result;
    void helper(string str,int left,int right){
        if(left)
            helper(str+'(',left-1,right);
        if(right>left)
            helper(str+')',left,right-1);
        if(!right)
            result.push_back(str);
    }
    vector<string> generateParenthesis(int n) {
        helper("",n,n);
        return result;
    }

};

2009 408应用题42题

已知一个带有表头结点的单链表,结点结构为:
在这里插入图片描述
假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。
要求:
(1)描述算法的基本设计思想。
(2)描述算法的详细实现步骤。
(3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C、C++或Java语言实现),关键之处请给出简要注释。

#include<stdio.h>
#include<stdlib.h>

typedef struct Node{
	int data;
	struct node *next;
}node,*LinkList;

void ShowList(LinkList L){//输出链表内容
	while(L){
		printf("%d->",L->data);
		L=L->next;
	}
	printf("NULL");
	printf("\n");
}

LinkList CreateList_end(int n){
	LinkList head = (LinkList)malloc(sizeof(node));
	node *p,*e;
	p=head;
	int x;
	for(int i=0;i<n;i++){
		//尾插法建立链表
		e=(LinkList)malloc(sizeof(node));
		scanf("%d",&x);
		e->data=x;
		p->next=e;
		p=e;
	}
	p->next=NULL;//将链表最后一个节点的指针域置空
	head=head->next;
	return head;
}
int LocateElement(LinkList list,int k){
LinkList p;
LinkList p1;
p1 = list->next;
p = list;
int i = 1;
	while(p1){
		p1 = p1->next;//快指针
		i++;
		if(i>k)
			p=p->next;//如果i>k,则p也往后移
			//慢指针
	}
	if(p==list)return 0;//p没有动,说明i<k,说明链表没有k个结点
	else{
		printf("%d\n",p->data);
		return 1;
	}
}

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

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

相关文章

Mysql基础练习题 1407.排名靠前的旅行者(力扣)

编写解决方案&#xff0c;报告每个用户的旅行距离。 # 返回的结果表单&#xff0c;以 travelled_distance 降序排列 &#xff0c;如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列 。 题目链接&#xff1a; https://leetcode.cn/problems/top-travellers/d…

页面水印的实现以及防删除方案

水印相关 引言绘制一个水印输出背景图封装一点点细节图片加水印防止水印删除问题解决方案 引言 在企业里为了防止信息泄露和保护知识产权&#xff0c;通常会在页面和图片上添加水印 前端页面水印的添加一般有这几种方式&#xff1a;dom 元素循环、canvas 输出背景图、svg 实现…

vite项目配置本地开发使用https访问

在Vite项目中启用HTTPS以安全地使用navigator.mediaDevices.getUserMedia() 引言 在现代Web开发中&#xff0c;保护用户隐私和数据安全是至关重要的。特别是在涉及到媒体捕获功能&#xff0c;如使用用户的摄像头或麦克风时&#xff0c;Web应用需要遵循严格的安全准则。naviga…

《生成式人工智能行业自律倡议》发布,BAT、华为小米 OPPO 荣耀、北大清华等参编

8 月 29 日,在成都举办的 2024 年中国网络文明大会上,《生成式人工智能行业自律倡议》正式发布。 《生成式人工智能行业自律倡议》从保障数据和算法模型安全合规、促进内容生态建设、追求技术创新与质量提升、遵循价值观与伦理道德标准和促进交流合作与开放共建等方面发出行…

Marin说PCB之在CST软件中如何搭建两端子电容器--01

今天是教师节&#xff0c;小编首先祝愿所有的老师们节日快乐&#xff0c;当然还有我的那些国外的老师们&#xff0c;道友们懂得都懂啊&#xff0c;我就不说破了&#xff0c;都毕业很多年了&#xff0c;小编我还是很怀念大学的时光的&#xff0c;毕竟那个时候我也是有很多女粉丝…

CCOS2024盛大举办, 四川眼科医院专家亮相盛会并作精彩分享

名医荟萃&#xff0c;共襄盛举&#xff1b;学术争鸣&#xff0c;共话未来。9月4日-8日&#xff0c;中华医学会第二十八次眼科学术大会&#xff08;CCOS2024&#xff09;在武汉国际会议中心和武汉国际博览中心隆重举行&#xff01; 此次大会汇聚了来自全国各地的一万多名眼科同…

一、windows11交叉编译ffmpeg的android版本库

目录 1、工具准备 &#xff08;1&#xff09;MSYS2 &#xff08;2&#xff09;NDK&#xff08;也可直接用android studio安装的&#xff09; &#xff08;3&#xff09;ffmpeg源码 2、环境配置 3、创建编译脚本 4、编译 曾经看到一个博客说&#xff0c;不要用windows编译…

过程设计例题

答案&#xff1a;D 知识点&#xff1a; 体系结构设计 定义软件系统各主要部件之间的关系 数据设计 基于E-R图确定软件涉及的文件系统及数据库的表结构 接口设计&#xff08;人机界面设计&#xff09; 软件内部&#xff0c;软件和操作系统间以及软件和人之间如何通信 过程…

基于Springboot的鲜花销售网站的设计与实现

项目描述 这是一款基于Springboot的鲜花销售网站的系统 模块描述 鲜花销售系统 1、用户 登录 在线注册 浏览商品 鲜花搜索 订购商品 查询商品详情 水果分类查看 水果加购物车 下单结算 填写收货地址 2、管理员 登录 用户管理 商品管理 订单管理 账户管理 截图

代码随想录算法训练营第二十三天| 455. 分发饼干、376. 摆动序列、53. 最大子序和

今日内容 贪心理论基础Leetcode. 455 分发饼干Leetcode. 376 摆动序列Leetcode. 53 最大子序和 贪心理论基础 贪心算法的本质就是选择每一阶段的最优&#xff0c;达到全局上的最优。 贪心算法和之前学到的所有方法相比&#xff0c;它没有固定的使用套路&#xff0c;也没有固…

IEEE 802.11a OFDM系统的仿真

&#xff08;内容源自详解MATLAB&#xff0f;SIMULINK 通信系统建模与仿真 刘学勇编著第九章内容&#xff0c;有兴趣的读者请阅读原书&#xff09; ​ ​ ​ clear all %%%%%%%参数设计部分%%%%%%%Nsp52;%系统子载波数&#xff08;不包括直流载波&#xff09; Nfft64;%FF…

【QT】自制一个简单的小闹钟,能够实现语音播报功能

做了一个自制的小闹钟&#xff0c;能够自己输入时间&#xff0c;以及对应的闹铃&#xff0c;时间到了自动播放设定的闹铃&#xff0c;可以随时取消重新设定&#xff0c;采用分文件编译 注意&#xff1a;需要在.pro文件中加入&#xff1a;QT core gui texttospeech 代码…

使用C++编写一个语音播报时钟(Qt)

要求&#xff1a;当系统时间达到输入的时间时&#xff0c;语音播报对话框中的内容。定时可以取消。qt界面如上图所示。组件如下&#xff1a; countdownEdit作为书写目标时间的line_edit start_btn作为开始和停止的按钮 stop_btn作为取消的按钮 systimelab显示系统时间的lab tex…

绿色医院建的中央空调无线集中控制系统

在医疗服务水平不断提高的今天&#xff0c;空调能耗已成为医院建筑能耗的主要组成部分&#xff0c;达到总建筑能耗的50%至60%。如何提高医院中央空调系统的能效&#xff0c;成为绿色医院建设中亟待解决的问题。而中央空调无线集中控制系统的出现&#xff0c;为医院节能运行提供…

Etsy店铺又被封了?教你申诉和防封技巧!

熟悉美国Etsy平台的用户都知道&#xff0c;该平台对店铺的监管非常严格&#xff0c;店铺被封的情况时有发生。 无论是新开的店铺&#xff0c;还是已经有一定订单量的店铺&#xff0c;都可能面临被封的风险&#xff0c;突如其来的封号&#xff0c;会让很多卖家束手无策。 那么&a…

国内AI论文写作推荐工具有哪些?试试这7款

在当前信息爆炸的时代&#xff0c;AI写作工具已经成为学术研究和写作的重要助手。这些工具不仅能够提高写作效率&#xff0c;还能帮助用户生成高质量的文稿。以下是七款值得推荐的国内AI论文写作工具&#xff1a; 一、千笔-AIPassPaper 千笔-AIPassPaper是一款功能强大且全面…

MDK keil STM32 局部变量不能查看值,显示为not in scope

用MDK调试程序&#xff0c;查看变量时watch窗口总是和 一、方法1&#xff1a;优化级别改为Level 0 1 编译器把这个局部变量给优化掉了&#xff0c;并没有在内存中生成&#xff0c;把优化级别改为Level 0&#xff0c;重新编译。 Keil默认优化是等级3&#xff0c;最高优化&…

MMO 地图传送,UI系统框架设计

地图传送 创建传送点 建碰撞器触发 //位置归零 建一个传送门cube放到要传送的位置&#xff08;这个teleporter1是传出的区域 这是从另一张地图传入时的传送门 创建一个脚本TeleporterObject给每个传送cube都绑上脚本 通过脚本&#xff0c;让传送门在编辑器下面还能绘制出来 …

第三部分:6---进程程序替换

目录 进程替换&#xff1a; execl函数解析&#xff1a; 多进程替换的本质&#xff1a; exec系列函数解析&#xff1a; 进程替换不会替换原进程的环境变量&#xff1a; 进程替换&#xff1a; 通过 fork 创建的进程&#xff0c;在最初会执行父进程代码的一部分&#xff0c;这…

动态规划-最长回文子序列

题目描述 给你一个字符串 s &#xff0c;找出其中最长的回文子序列&#xff0c;并返回该序列的长度。 子序列定义为&#xff1a;不改变剩余字符顺序的情况下&#xff0c;删除某些字符或者不删除任何字符形成的一个序列。 示例 1&#xff1a; 输入&#xff1a;s "bcbbab…