数据结构——重点代码汇总

news2024/11/24 1:04:10

顺序表

  1. 设计算法,从顺序表L中删除值为x的元素。要求算法的时间复杂度为O(n),空间复杂度为O(1)。

  1. 设计算法,判断一个字符串是否是回文。如a+bc3cb+a是回文序列,而1++3==3+1不是回文序列。

  1. 从顺序存储结构的线性表a中删除第i个元素起的k个元素。设计一个时间复杂度为O(k)的算法。

  1. 请写一算法,在顺序表中查找指定的数据,查找成功则将该记录前面的所有记录后退一个位置,使该记录放到顺序表的最前面。

链表

  1. 试编写在链式存储结构实现求两个集合之差函数difference(A, B)。令C=A-B,取仅当e是A中的一个元素,但不是B中的元素时,e是C中的一个元素。

  1. 试设计在带头结点的单循环链表h中查找元素值为x的结点所在的位置的算法。

  1. 两个链式存储的线性表LA和LB,其元素均按从小到大的升序排序。编写一个算法将它们合并成一个链表LC,要求LC的元素从小到大的升序排序。要求利用原表(即LA表和LB表)的结点空间构造LC表,且算法时间性能达到两个表长之和。

  1. 设计算法将一个带头结点的单链表A分解成两个具有相同结构的链表B,C。其中B表的结点是A表中值为奇数的结点,而C表的结点为A表中值为偶数的结点(链表A的元素类型为整型,要求B,C表利用A表的结点)。

  1. 设有一个由正整数组成的无序单链表,编写完成下列功能的算法:
    • 找出最小值结点,且打印该数值;
    • 若该数值是奇数,则将其与直接后继结点的数值交换;
    • 若该数值是偶数,则将其直接后继结点删除。

  1. 有两个带头结点的循环单链表LA、LB,编写一个算法,将两个循环单链表合并为一个循环单链表,其头指针为LA,并给出时间复杂度。

  1. 编写在带头结点的单链表中删除值为x的结点的函数

void DeleteLinklist(Linklist head, int x)

  1. 设有一个循环单链表的长度大于1,且表中既无头结点也无头指针。已知s为指向链表某个结点的指针,试编写算法在链表中删除s所指结点的前驱结点。

  1. 设计算法在带头结点的单链表中结点值为a前插入值为b的结点。

  1. 给定头指针为ha的单链表A和头指针为hb的递增有序单链表B,试利用表A和表B的结点,将表A和表B归并为递增有序单链表C,其头指针为hc(允许有相同的data值,表A、B、C均带有头结点)。

  1. 写一算法,将一带头结点的单链表逆转,要求不要额外占用空间。

  1. 编写一个算法,逐个输出单链表中所有数据元素。设数据元素的数据类型为int类型。

  1. 编写一个求已建好的单链表(表头指针为L)的结点个数的函数。

队列

为防止溢出,队列常用循环顺序队列来实现,常用以下两种策略协助判断循环队列的空和满,即:(1)设一个数据域表示队列中的元素个数,(2)少用一个存储单元。这里采用第一种策略,分别写出入队函数int Enqueue(sql q, qtype x)和出队函数int Dequeue(sql q, qtype *x)。

  1. 写出中序线索二叉树中查找结点*p中序后继的算法。

  1. 二叉链表存储二叉树,写出层序遍历二叉树的算法。

  1. 试编写函数void exchange(NODE *t),其功能是交换二叉树的各结点的左右子树(根结点指针为1)。

  1. 编写算法,判断给定的二叉树是否为二叉排序树。

  1. 试编写一个求二叉树深度的算法。

  1. 以二叉链表作为二叉树的存储结构,编写一个算法,按层次顺序遍历二叉树的方法,统计树中度为1的结点数目。

  1. 已知一棵以二叉链表方式存储的二叉树,编写算法计算二叉树的叶子结点个数。

  1. 写一个算法:判断图的连通性,如果图不连通求出连通分量的个数。

  1. 写出把图的邻接矩阵表示转化为邻接表表示的算法。

  1. 采用邻接表存储结构,编写一个判别无向图中任意给定的两个顶点之间是否存在一条长度为k的简单路径的算法。

  1. 假设以邻接矩阵作为图的存储结构,编写算法判别在给定的有向图中是否存在一条简单有向回路,若存在,则以顶点序列的方式输出该回路。

排序

  1. 设计算法,完成一趟快速排序算法。即将下标从low到high的元素以r[low]为基准分为两部分,小的在前、大的在后。

  1. 编写算法,对N个关键字(均为非零整数值)的记录序列进行整理,使所有关键字为负值的记录排在关键字为非负值的记录之前。要求采用顺序存储结构,算法的时间复杂度为O(n)。

  1. 编写函数InsSort(a, n),完成对数组a[n]的直接插入排序。

  1. 写出折半查找的非递归算法和递归算法。

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

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

相关文章

SuperMap GIS 倾斜摄影数据处理 QA

一、倾斜摄影数据简介 倾斜摄影(Oblique photography)是指由一定倾斜角度的航摄相机所获取的影像。倾斜摄影技术是国际摄影测量领域近十几年发展起来的一项高新技术,该技术通过从一个垂直、四个倾斜、五个不同的视角同步采集影像&#xff0c…

深度学习训练营之天气识别P3

深度学习训练营之天气识别原文链接环境介绍前置工作设置GPU导入数据数据查看数据预处理加载数据可视化数据检查数据配置数据集prefetch()功能详细介绍:构建CNN网络编译模型训练结果可视化原文链接 🍨 本文为🔗365天深度学习训练营 中的学习记…

卫龙上市首日破发:高瓴、红杉、腾讯等账面亏损,刘卫平为董事长

12月15日,卫龙美味全球控股有限公司(下称“卫龙”,HK:09985)在港交所上市。本次上市,卫龙的发行价格为10.56港元/股,募资总额约为10.18亿港元,募资净额约为8.99亿港元。 上市首日,卫…

Web3中文|NFT如何助力项目进入Web3?

自NFT流行以来,一直有人将这些由区块链驱动的代币视作贯彻人类精神的最终疗法。 但是NFT真的都存储在区块链上了吗?如果是这样的话,怎么还会出现百万NFT被盗的事件呢? 如果你也想过这些问题,那么请相信我&#xff0c…

在现有项目里面添加 TSX 并编写组件过程记录

首先需要安装编译支持和 vite 支持插件 ## babel 基础插件 yarn add vue/babel-plugin-jsx -D## 项目用 vite 构建的就需要按照这个 yarn add vitejs/plugin-vue-jsx -D 使用插件 按照 babel-plugin-jsx 的指引在 babel 配置项中启用插件: {"plugins":…

Linux操作系统常见问题汇总

1.系统启动流程。 uboot -> kernel -> 根文件系统。 uboot第一阶段属于汇编阶段: 定义入口(start.S):uboot中因为有汇编阶段参与,因此不能直接找main.c。 设置异常向量:当硬件发生故障的时候CPU会…

K8s Dashboard 部署

1、下载 Dashboard 的 yaml 文件 点击链接下载 YAML 文件 2、源码包中 yaml 文件在哪里 3、修改 yaml 文件 vim recommended.yaml... kind: Service apiVersion: v1 metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard…

Java web 2022跟学尚硅谷(十) 后端基础 书城

Java web 2022跟学尚硅谷十 后端基础 书城验证码kaptcha和缓存cookie简单了解cookie步骤简单创建cookie的样例代码CookieServlet01hello.html页面结果Cookie保存结果第二次请求cookie的APIKaptcha验证码使用步骤显示效果验证码的校验相关类KaptchaServlet01书城1.2正则表达式正…

C语言经典题目—单链表求和

练习的题目<单链表求和>题目难度较小。 1、题目描述 小明输入了一个长度为 n 的数组&#xff0c;他想把这个数组转换成链表&#xff0c;链表上每个节点的值对应数组中一个元素的值&#xff0c;然后遍历链表并求和各节点的值。输入描述&#xff1a; 第一行输入一个正整数…

Linux下内存空间分配、物理地址与虚拟地址映射

一、Linux内核动态内存分配与释放 1.1 kmalloc函数 Kmalloc分配的是连续的物理地址空间。如果需要连续的物理页&#xff0c;可以使用此函数&#xff0c;这是内核中内存分配的常用方式&#xff0c;也是大多数情况下应该使用的内存分配方式。 传递给函数的最常用的标志是GTP_A…

火山引擎DataTester:无需研发人力,即刻开启企业A/B实验

近日&#xff0c;火山引擎A/B测试平台—— DataTester 对产品内A/B实验的“可视化编辑器”进行了新的升级&#xff0c;对交互、预览、Xpath的层次结构视图等能力均做了优化。 据介绍&#xff0c;火山引擎DataTester的可视化编辑器&#xff0c;可以让用户无需编写任何代码&#…

基于java+springboot+mybatis+vue+mysql的CSGO游戏比赛赛事管理系统

项目介绍 CSGO赛事管理系统利用网络沟通、计算机信息存储管理&#xff0c;有着与传统的方式所无法替代的优点。比如计算检索速度特别快、可靠性特别高、存储容量特别大、保密性特别好、可保存时间特别长、成本特别低等。在工作效率上&#xff0c;能够得到极大地提高&#xff0…

基于JAVA+SpringMVC+Mybatis+Vue+MYSQL的大健康老年公寓管理系统

项目介绍 本系统采用java语言开发&#xff0c;后端采用ssm框架&#xff0c;前端采用vue技术&#xff0c;数据库采用mysql进行数据存储。 管理员后台页面&#xff1a; 功能&#xff1a;主页、个人中心、护理人员管理、收费标准管理、接待登记管理、房间信息管理、床位信息管理…

ASEMI肖特基二极管MBR30200FCT封装,MBR30200FCT体积

编辑-Z ASEMI肖特基二极管MBR30200FCT参数&#xff1a; 型号&#xff1a;MBR30200FCT 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;200V 最大RMS电桥输入电压&#xff08;VRMS&#xff09;&#xff1a;140V 最大直流阻断电压&#xff08;VDC&#xff09…

Android 相机预览 横屏竖屏 -- 显示

相机在设备上处于固定位置&#xff0c;无论设备是否 是手机、平板电脑或计算机。当设备方向更改时&#xff0c; 相机方向更改。常见的布局显示比率是 4:3。 对于前置摄像头&#xff0c;图像缓冲区逆时针旋转&#xff08;从 传感器的自然方向&#xff09;对于后置摄像头&#xf…

机械硬盘如何克隆至固态硬盘,如何把硬盘系统克隆到固态硬盘

由于电脑的磁盘空间是既定的&#xff0c;随着使用年限越来越长&#xff0c;电脑磁盘空间已经不满足实际的需求了。为了拓展磁盘空间&#xff0c;就可以使用磁盘克隆的方法来扩展磁盘空间。因此&#xff0c;在本文中&#xff0c;易我小编将讲解硬盘克隆的相关理论知识&#xff0…

非零基础自学Golang 第7章 函数 7.5 匿名函数和闭包

非零基础自学Golang 文章目录非零基础自学Golang第7章 函数7.5 匿名函数和闭包7.5.1 定义和使用匿名函数7.5.2 闭包的定义7.5.3 闭包的“记忆力”第7章 函数 7.5 匿名函数和闭包 匿名函数即在需要函数时定义函数&#xff0c;匿名函数能以变量方式传递&#xff0c;它常常被用于…

【图像评价】图像质量评价【含GUI Matlab源码 1373期】

⛄一、简介 理论知识参考文献&#xff1a;图像印刷质量的客观评价——以报纸印刷为例 ⛄二、部分源代码 function varargout IQA(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton 1; gui_State struct(‘gui_Name’, mfilename, … ‘gui_Singleton…

C++模板(初阶)

本章主要讲解三个部分&#xff1a;泛型编程、函数模板、类模板 目录 泛型编程 函数模板 函数模板概念 函数模板的格式 函数模板的原理 函数模板的实例化 隐式实例化 显式实例化 模板参数的匹配原则 类模板 泛型编程 先来大致说一下什么是泛型编程. 在计算机程序设计领…

如何安装第三方的Python包?

目录 什么是第三方包 常见的第三方包 如何安装 方法1&#xff1a;命令行 方法2&#xff1a;在IDE中用图形界面操作 什么是第三方包 我们知道&#xff0c;在Python中包就是把一些同类型的功能封装到一处&#xff0c;包含了函数、类、变量等可供外界使用。使用的方法就是在文…