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();
}
}
相关推荐
深入理解数据结构:向量与列表的算法实现
本文详细探讨了向量和列表在数据结构中的算法实现和操作接口。从有序向量的二分查找开始,解释了其在不同版本中的实现及其正确性。接着分析了排序算法的分类和复杂度下界,探讨了比较树模型在确定排序算法效率中的应用。文章还介绍了归并排序的原理和归并时间,以及列表结构的动态存储策略和相关接口。最后,通过列表的实现细节,展示了如何利用这些接口对数据进行高效操作。
锁升级:无锁、偏向锁、轻量级锁、重量级锁
我先通俗的讲一下锁升级 举个例子 无锁:比如社团有一间教室 上自习 大家都可以用 没有财产问题 就是无锁状态 偏向锁:后来社团添置了打印机投影仪之类的物品,不能再敞开着大门了,团委老师就安装了一把锁,但是社团教室只有 小韩 一个同学来上自习,团委老师就把钥匙给他保管,因为下次教室还是他用,用完了钥匙就不用还给团委老师了,这就是偏向锁,节省了资源不用来回跑团委,如果小韩同学再也不用教室钥匙了,或者小韩不用的时候 另一位同学用,就把钥匙给另一位同学就行。 轻量锁:后面小陈也想用这个自习室,但是自己没有钥匙,就
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网站下载 笔记本直连.
深入理解Java对象结构
一、Java对象结构 实例化一个Java对象之后,该对象在内存中的结构是怎么样的?Java对象(Object实例)结构包括三部分:对象头、对象体和对齐字节,具体下图所示 1、Java对象的三部分 (1)对象头 对象头包括三个字段,第一个字段叫作Mark Word(标记字),用于存储自身运行时的数据,例如GC标志位、哈希码、锁状态等信息。 第二个字段叫作Class Pointer(类对象指针),...
WorkBuddy结合DeepSeek与Skill:文献检索自动化与Token成本控制实战
Agent工具与大模型API的结合正重塑知识工作者的日常流程。在实际工程中,调用大模型处理批量任务常面临Token消耗过快、成本不可控的痛点,而国产大模型DeepSeek以极低的API定价和兼容OpenAI接口的特性,为规模化文本处理提供了“Token自由”的可能。同时,可复用的Skill机制能够将特定领域的工作流固化为标准化步骤,让Agent自动执行检索式生成、文献筛选与摘要归纳等复杂操作。本文从这一技术背景出发,以科研文献检索为应用场景,演示如何利用WorkBuddy、DeepSeek API与自建文献
RobotFramework二次开发——实时日志
背景基于RobotFramework的二次开发,少不了要打印实时日志出来,比如广泛应用的工具ride中,在执行用例时会把执行过程中的log全部打印出来,如果二次开发的时候,执行用例只能静默等待执行完毕,那只能算是一个半成品。结果在最后,不想看过程的可以直接跳到最后思路RobotFramework的日志有好几种,一个是执行后的log文件,这个文件可以作为数据留存,但是没办法实时获取,因为文件是在执行完
Mark Word结构详解及分析对象在内存占用大小
Mark Word结构详解及分析对象在内存占用大小
Allegro如何输出ODB文件操作指导
在PCB设计完成之后,需要输出生产文件用于生产加工,除了gerber文件可以用生产制造,ODB文件同样也可以用于生产,如下图。用Allegro如何输出ODB文件,具体操作如下。如何输出ODB文件操作指导。
二、【数据结构】列表(list)的实现
本文使用c++实现list数据结构,list的接口函数采用高效的实现方式,这样一方面使我加深对数据结构的理解,另一方便可以让我再复习复习c++,通过前几天写的vector数据结构的底层实现,我确实又进一步地熟悉使用C++进行编程,,这次写list的实现过程中,我几乎没有怎么查看《c++prime》了哈哈,就是函数对象形式的遍历函数的声明格式怎么也想不起来,后来查书才明白函数的形参其实是个类的对象,...
大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!
在当今大数据时代,数据量的爆炸式增长对企业和技术提出了前所未有的挑战。如何高效地存储、处理和分析这些庞大的数据集,成为了亟待解决的问题。Hadoop作为一种分布式计算框架,应运而生,为大数据处理提供了有效的解决方案。Hadoop是一个由Apache软件基金会维护的开源项目,它基于Google的分布式文件系统(Google File System,GFS)和MapReduce计算模型设计。Hadoop的主要目标是处理大规模数据集,它可以在普通硬件集群上运行,从而降低了大数据处理的成本。
FPGA学习笔记(一)入门背景、软件及时钟约束的概念及程序下载与固化
使用正点原子的PFPGA开拓者V2学习,通过b站上正点原子的手把手教你学FPGA-基于开拓者V2学习。
数据结构列表的JS实现
列表时一组有序的数据结构,每个列表中的数据项称为元素。不包含任何元素的列表为空列表,可以在列表的末尾append一个元素,也可以在列表中指定位置insert一个元素,关于列表的抽象数据类型的定义如下: 属性或方法 描述 listSize(属性) 列表的元素个数 pos(属性) 列表中的当前位置 length(方法) 返回...
手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问
🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨
python 列表实现简单的数据结构
python3列表 python中,列表是一种使用频率很高的数据结构,有点类似于C++的数组,但是功能似乎又比数组更加强大,用法更加灵活,可能是我C++没有学到位吧!在这里就不介绍数组了,因为列表本身就是一个加强版的数组,它除了具备python中序列的基本操作:索引,切片,加,乘,检查成员 之外,还有很多灵活便捷的方法操作。 列表常见操作 下面是列表中的方法: list.append(x) : ...
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...
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
Python 数据结构:列表、元组、集合、字典的底层实现
Python 的数据结构在底层实现了高效的操作,使得开发者能够轻松地构建复杂的程序。了解这些数据结构的底层实现有助于优化代码性能和选择合适的数据结构。通过本文的介绍,我们了解到列表基于动态数组,元组基于固定数组,集合和字典基于哈希表。希望读者能够在实际开发中灵活运用这些数据结构,提升编程效率。```
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
数据结构(Java)——列表的实现
链表是一种实现策略,使用引用在对象之间创建链接。 列表集合 是一种概念性的表示方法,其思想是使事物以线性列表的方式进行组织,就像栈和队列一样,列表也可以使用数组和链表来实现。列表集合没有内在的容量大小,它可以随着需要而增大。列表集合更一般化,可以在列表的中间和末端添加和删除元素。 列表可以分为有序列表、无序列表、索引列表。
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"""
<数据结构>顺序列表的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
数据结构之列表-javascript实现
学习数据结构的记录 列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合,在这种数据结构上进行的基本操作包括对元素的的查找,插入,和删除 列表的两种主要表现是数组和链表,栈和队列是两种特殊类型的列表 迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容...
数据结构学习篇——基于数组实现列表
接口是为了规定有哪些操作,那么一个列表有哪些操作呢?比如常见的增、删、改、查都是。那么不妨定义一个列表的接口。/*** 线性表(列表)的接口定义*//**新增一个元素*//**删除相同元素*//**根据索引删除元素*//*** 将指定索引位置的元素替换成新元素*//*** 当前列表中是否含有target这个元素* @return*//*** 返回指定索引处的元素* @return*//*** 查找element的索引,如果没有返回-1* @return。
数据结构-Java实现散列表
概念散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表
403



被折叠的 条评论
为什么被折叠?



