如何分析linkedList
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,如何分析linkedList,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。简介linkedList应该是一种非常非常简单
千家信息网最后更新 2025年01月25日如何分析linkedList
如何分析linkedList,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
简介
linkedList应该是一种非常非常简单的数据结构了。节点一个一个的连接起来,就成了linkedList。今天我们使用动画的方法一起来看看linkedList是怎么插入和删除的。
linkedList的构建
linkedList是由一个一个的节点构成的。而每个节点只需要存储要保存的数据和下一个节点的引用即可。
linkedList本身需要一个head节点,所以我们的linkedList可以这样构建:
public class LinkedList { Node head; // head 节点//Node表示的是Linked list中的节点,包含一个data数据和下一个节点的引用class Node {int data; Node next;//Node的构造函数Node(int d) { data = d; } }}
linkedList的操作
先看一下linkedList怎么插入数据,插入数据有三种方式,头部插入,尾部插入,中间插入。
头部插入
先看一个头部插入的例子:
头部插入的逻辑是什么呢?
新插入的节点作为head节点,然后将原来的head节点指向当前head节点的next引用即可。
//插入到linkedList的头部public void push(int newData) {//构建要插入的节点Node newNode = new Node(newData);//新节点的next指向现在的head节点newNode.next = head;//现有的head节点指向新的节点head = newNode; }
尾部插入
再看一下尾部插入的例子:
插入的逻辑是什么呢?
找到最后一个节点,然后将最后一个节点的next指向新插入的节点。
//新节点插入到list最后面public void append(int newData) {//创建新节点Node newNode = new Node(newData);//如果list是空,则新节点作为head节点if (head == null) { head = newNode;return; } newNode.next = null;//找到最后一个节点Node last = head;while (last.next != null) { last = last.next; }//插入last.next = newNode;return; }
中间插入
再看一下中间插入的例子:
这个例子中,我们在第三个节点的位置插入了一个93。
插入逻辑就是先找到第二个节点,将第二个节点的next指向新节点,然后将新节点的next指向原先的第三个节点。
看下java代码如何实现:
//插入在第几个元素之后public void insertAfter(int index, int newData) { Node prevNode = head;for (int i = 1; i < index; i++) {if (prevNode == null) { System.out.println("输入的index有误,请重新输入");return; } prevNode = prevNode.next; }//创建新的节点Node newNode = new Node(newData);//新节点的next指向prevNode的下一个节点newNode.next = prevNode.next;//将新节点插入在prevNode之后prevNode.next = newNode; }
删除节点
再看一下怎么删除某个位置的节点:
上面的例子中,我们要删除第5个节点。
删除的逻辑就是找到第4个节点和第6个节点。然后将第四个节点的next指向第6个节点即可。
看下相应的java代码如下:
//删除特定位置的节点void deleteNode(int index){// 如果是空的,直接返回if (head == null)return;// head节点Node temp = head;// 如果是删除head节点if (index == 1) { head = temp.next;return; }// 找到要删除节点的前一个节点for (int i=1; temp!=null && inext 是要删除的节点,删除节点Node next = temp.next.next; temp.next = next; }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
节点
指向
例子
头部
数据
逻辑
位置
尾部
三个
代码
就是
帮助
输入
分析
清楚
元素
内容
函数
动画
对此
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
医护人员绘画软件开发
济南浪潮服务器经销商
数据库考研考数学吗
广东省深圳市网络安全中心
天河靠谱小程序软件开发
户籍代码软件开发
护苗网络安全课观后感
saas分拣软件开发
怎么做数据库安全
网络服务器的功能概述
网络安全教育儿童画a3纸
工业园区智能化软件开发系统
铁锈战争服务器多少钱
古冶区辅助网络技术诚信合作
网络安全教育班会报道
怎么查询石器时代服务器数据库
网络安全师的考核
神途总服务器下载
服务器开机启动后显示正在运行
青岛物流软件开发哪家好
吴中区进口网络技术质量保证
网络安全培训的时间
139邮箱服务器安全类型
网络技术基础ppt
云服务器哪家最好
数据库搜索引擎相关知识
鼓楼区智能化软件开发创新服务
软件开发认证考试费用
中国移动网络技术岗是干嘛的
软件开发具体哪方面