数据结构-列表实现

数据结构与算法——列表的实现、排序与遍历(C++) 文章目录1 列表实现1.1 ListNode节点结构体1.2 List类1.3 主程序2 列表三大排序方法2.1 插入排序2.2 选择排序2.3 归并排序3 列表遍历4 总结 1 列表实现 1.1 ListNode节点结构体 构建列表的前提是建造一个列表节点的结构体,这个结构体表示了列表的最小单元。ListNode结构体一般包括的成员有数据,前驱与后继。 typedef int Rank; // 秩 #define ListNodePosi(T) ListNode<T>* //列表节点位置 t 阅读详情
package com.data.struct;

public class NodeList {
	private Node head;
	public NodeList(){
		
	}
	
	public void print(){
		Node node=head;
		while(node!=null){
			System.out.print(node.getData()+" ");
			node=node.next;
		}
		System.out.println();
	}
	public Node search(int k){
		Node x=head;
		while(x!=null&&x.data!=k){
			x=x.next;
		}
		return x;
	}
	public void insert(Node x){
		x.next=head;
		if(head!=null){
			head.prev=x;
		}
		head=x;
		x.prev=null;
	}
	public void delete(Node x){
		if(x.prev!=null){
			x.prev.next=x.next;
		}else{
			head=x.next;
		}
		if(x.next!=null){
			x.next.prev=x.prev;
		}
	}
	public static class Node{
		private Node prev;
		private Node next;
		private int data;
		public Node getPrev() {
			return prev;
		}
		public void setPrev(Node prev) {
			this.prev = prev;
		}
		public Node getNext() {
			return next;
		}
		public void setNext(Node next) {
			this.next = next;
		}
		public int getData() {
			return data;
		}
		public void setData(int data) {
			this.data = data;
		}
		
		
	}
	public static void main(String[] args) {
		NodeList list=new NodeList();
		Node node=new Node();
		node.setData(1);
		list.insert(node);
		Node node2=new Node();
		node2.setData(3);
		list.insert(node2);
		Node node3=new Node();
		node3.setData(5);
		list.insert(node3);
		list.print();
		System.out.println(list.search(3).getNext().getData());
		list.delete(list.search(3));
		list.print();
	}

}

【数据结构Python描述】位置列表简介与Python版手工实现 位置列表简介与Python实现 阅读详情

相关推荐

深入理解数据结构:向量与列表的算法实现

本文详细探讨了向量和列表在数据结构中的算法实现和操作接口。从有序向量的二分查找开始,解释了其在不同版本中的实现及其正确性。接着分析了排序算法的分类和复杂度下界,探讨了比较树模型在确定排序算法效率中的应用。文章还介绍了归并排序的原理和归并时间,以及列表结构的动态存储策略和相关接口。最后,通过列表的实现细节,展示了如何利用这些接口对数据进行高效操作。

weixin_35364187的博客 403

锁升级:无锁、偏向锁、轻量级锁、重量级锁

我先通俗的讲一下锁升级 举个例子 无锁:比如社团有一间教室 上自习 大家都可以用 没有财产问题 就是无锁状态 偏向锁:后来社团添置了打印机投影仪之类的物品,不能再敞开着大门了,团委老师就安装了一把锁,但是社团教室只有 小韩 一个同学来上自习,团委老师就把钥匙给他保管,因为下次教室还是他用,用完了钥匙就不用还给团委老师了,这就是偏向锁,节省了资源不用来回跑团委,如果小韩同学再也不用教室钥匙了,或者小韩不用的时候 另一位同学用,就把钥匙给另一位同学就行。 轻量锁:后面小陈也想用这个自习室,但是自己没有钥匙,就

韩旭051的博客 1797

X3850x6 6241 fireware固件升级

登录联想https://datacentersupport.lenovo.com/cn/zc网站,选择system x,x3850 x6,type选择6241 选择驱动及应用程序,BIOS/UEFI 选择lnvgy_fw_uefi_a9e156a-4.90_anyos_32-64.uxz 文件,点击下载 选择IMM2, 下载lnvgy_fw_imm2_tcoo58b-5.80_anyos_noarch.uxz ps:3837和3839会跳转到ibm网站下载 笔记本直连.

zds00virtue的博客 5457

深入理解Java对象结构

一、Java对象结构 实例化一个Java对象之后,该对象在内存中的结构是怎么样的?Java对象(Object实例)结构包括三部分:对象头、对象体和对齐字节,具体下图所示 1、Java对象的三部分 (1)对象头 对象头包括三个字段,第一个字段叫作Mark Word(标记字),用于存储自身运行时的数据,例如GC标志位、哈希码、锁状态等信息。 第二个字段叫作Class Pointer(类对象指针),...

weixin_36968890的博客 585

WorkBuddy结合DeepSeek与Skill:文献检索自动化与Token成本控制实战

Agent工具与大模型API的结合正重塑知识工作者的日常流程。在实际工程中,调用大模型处理批量任务常面临Token消耗过快、成本不可控的痛点,而国产大模型DeepSeek以极低的API定价和兼容OpenAI接口的特性,为规模化文本处理提供了“Token自由”的可能。同时,可复用的Skill机制能够将特定领域的工作流固化为标准化步骤,让Agent自动执行检索式生成、文献筛选与摘要归纳等复杂操作。本文从这一技术背景出发,以科研文献检索为应用场景,演示如何利用WorkBuddy、DeepSeek API与自建文献

weixin_29061509的博客 508

RobotFramework二次开发——实时日志

背景基于RobotFramework的二次开发,少不了要打印实时日志出来,比如广泛应用的工具ride中,在执行用例时会把执行过程中的log全部打印出来,如果二次开发的时候,执行用例只能静默等待执行完毕,那只能算是一个半成品。结果在最后,不想看过程的可以直接跳到最后思路RobotFramework的日志有好几种,一个是执行后的log文件,这个文件可以作为数据留存,但是没办法实时获取,因为文件是在执行完

点点寒彬的博客 1万+

Mark Word结构详解及分析对象在内存占用大小

Mark Word结构详解及分析对象在内存占用大小

Songbl_的博客 1176

Allegro如何输出ODB文件操作指导

在PCB设计完成之后,需要输出生产文件用于生产加工,除了gerber文件可以用生产制造,ODB文件同样也可以用于生产,如下图。用Allegro如何输出ODB文件,具体操作如下。如何输出ODB文件操作指导。

weixin_54787054的博客 7218

二、【数据结构】列表(list)的实现

本文使用c++实现list数据结构,list的接口函数采用高效的实现方式,这样一方面使我加深对数据结构的理解,另一方便可以让我再复习复习c++,通过前几天写的vector数据结构的底层实现,我确实又进一步地熟悉使用C++进行编程,,这次写list的实现过程中,我几乎没有怎么查看《c++prime》了哈哈,就是函数对象形式的遍历函数的声明格式怎么也想不起来,后来查书才明白函数的形参其实是个类的对象,...

天涯明月刀的博客 2925

大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!

在当今大数据时代,数据量的爆炸式增长对企业和技术提出了前所未有的挑战。如何高效地存储、处理和分析这些庞大的数据集,成为了亟待解决的问题。Hadoop作为一种分布式计算框架,应运而生,为大数据处理提供了有效的解决方案。Hadoop是一个由Apache软件基金会维护的开源项目,它基于Google的分布式文件系统(Google File System,GFS)和MapReduce计算模型设计。Hadoop的主要目标是处理大规模数据集,它可以在普通硬件集群上运行,从而降低了大数据处理的成本。

邓邓子的博客 8289

FPGA学习笔记(一)入门背景、软件及时钟约束的概念及程序下载与固化

使用正点原子的PFPGA开拓者V2学习,通过b站上正点原子的手把手教你学FPGA-基于开拓者V2学习。

贾saisai的博客 3281

数据结构列表的JS实现

列表时一组有序的数据结构,每个列表中的数据项称为元素。不包含任何元素的列表为空列表,可以在列表的末尾append一个元素,也可以在列表中指定位置insert一个元素,关于列表的抽象数据类型的定义如下: 属性或方法 描述 listSize(属性) 列表的元素个数 pos(属性) 列表中的当前位置 length(方法) 返回...

weixin_34227447的博客 142

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4612

python 列表实现简单的数据结构

python3列表 python中,列表是一种使用频率很高的数据结构,有点类似于C++的数组,但是功能似乎又比数组更加强大,用法更加灵活,可能是我C++没有学到位吧!在这里就不介绍数组了,因为列表本身就是一个加强版的数组,它除了具备python中序列的基本操作:索引,切片,加,乘,检查成员 之外,还有很多灵活便捷的方法操作。 列表常见操作 下面是列表中的方法: list.append(x) : ...

求知若饥,谦卑若愚 610

RT-Thread Studio 使用笔记(七)| 配合STM32CubeMX添加裸机驱动(以ADC为例)

1. 配置STM32CubeMX 2. 复制stm32xxxx_hal_msp.c文件 将 CubeMx 生成的代码 stm32f7xx_hal_msp.c 函数复制到 RT-Thread Studio 生成的工程中,并参与工程编译: 由于我们并没有使用 CubeMx 生成的工程,所以这里需要将 stm32f7xx_hal_msp.c 文件中 #include “main.h” 替换为 #i...

Mculover666的博客(嵌入式) 9629

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python 数据结构:列表、元组、集合、字典的底层实现

Python 的数据结构在底层实现了高效的操作,使得开发者能够轻松地构建复杂的程序。了解这些数据结构的底层实现有助于优化代码性能和选择合适的数据结构。通过本文的介绍,我们了解到列表基于动态数组,元组基于固定数组,集合和字典基于哈希表。希望读者能够在实际开发中灵活运用这些数据结构,提升编程效率。```

2501_90672681的博客 380

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数据结构(Java)——列表的实现

链表是一种实现策略,使用引用在对象之间创建链接。 列表集合 是一种概念性的表示方法,其思想是使事物以线性列表的方式进行组织,就像栈和队列一样,列表也可以使用数组和链表来实现。列表集合没有内在的容量大小,它可以随着需要而增大。列表集合更一般化,可以在列表的中间和末端添加和删除元素。 列表可以分为有序列表、无序列表、索引列表。

狼行千里 1301

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...

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python列表实现栈数据结构

python 实现栈数据结构 顺序存储的方式实现栈模型 思路: 1、栈 : LIFO 后进先出 2、设计 栈顶: 列表的尾部作为栈顶,负责入栈和出栈操作 栈底: 列表的头部作为栈底,不负责任何操作 class ListStack: def __init__(self): # 初始化一个空栈 self.elems = [] def is_empty(self): """判断栈是否为空,为空返回True,非空返回False"""

weixin_45228198的博客 371

<数据结构>顺序列表的C语言实现

最近,重新复习一遍数据结构,因为觉得以前数据结构学的不是很扎实,所用教材为严蔚敏《数据结构》(C语言版)。下面给出自己实现的顺序表的源代码: "init.h": #ifndef _INIT_H #define _INIT_H #include #include #define TRUE 1 #define FASLE 0 #define OK 1 #define ERROR -1 #d

云淡风轻的Blog 1271

数据结构之列表-javascript实现

学习数据结构的记录 列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合,在这种数据结构上进行的基本操作包括对元素的的查找,插入,和删除 列表的两种主要表现是数组和链表,栈和队列是两种特殊类型的列表 迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容...

weixin_34187862的博客 77

数据结构学习篇——基于数组实现列表

接口是为了规定有哪些操作,那么一个列表有哪些操作呢?比如常见的增、删、改、查都是。那么不妨定义一个列表的接口。/*** 线性表(列表)的接口定义*//**新增一个元素*//**删除相同元素*//**根据索引删除元素*//*** 将指定索引位置的元素替换成新元素*//*** 当前列表中是否含有target这个元素* @return*//*** 返回指定索引处的元素* @return*//*** 查找element的索引,如果没有返回-1* @return。

kizzo的博客 327

数据结构-Java实现散列表

概念散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表

jrn1012的专栏 3838
上一篇: 数据结构-用数组实现队列
下一篇: 基于zookeeper的分布式lock实现
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值