当前位置: 首页 > news >正文

什么做婚车网站最大wordpress 点击弹出层

什么做婚车网站最大,wordpress 点击弹出层,电脑版qq在线登录网页入口,为什么要做官方网站本节介绍链表 目录 1.什么是链表 1.1链表定义 1.2链表分类 2.链表实现 2.1创建链表 1)手动创建 2)创建链表类进行管理链表的相关操作 2.2添加元素 1)头插法 2)尾插法 3)任意位置插入 2.3删除 2.4查找 1&…

本节介绍链表

目录

1.什么是链表

1.1链表定义

1.2链表分类

2.链表实现

2.1创建链表

1)手动创建

2)创建链表类进行管理链表的相关操作

2.2添加元素

1)头插法

2)尾插法

3)任意位置插入

2.3删除

2.4查找

1)返回节点

2)返回索引


1.什么是链表

1.1链表定义

链表是一种数据结构,它由一系列节点组成。每个节点包含至少两部分信息:数据域(用于存储数据元素)和指针域(用于存储指向下一个节点的引用或地址)。链表通过节点之间的指针连接,形成一个链式结构。

与数组不同:1.数组中的元素在内存中是连续存储的,而链表的节点在内存中的存储位置不一定是连续的。2.链表它在插入和删除操作上相对数组更加灵活

1.2链表分类

  • 单向链表:也称为单链表,是最基本的链表形式。每个节点只包含一个指向下一个节点的指针,只能从链表的头节点开始,沿着指针依次访问后续节点,无法反向遍历。
  • 双向链表:在双向链表中,每个节点除了有一个指向后继节点的指针外,还有一个指向前驱节点的指针。这使得双向链表可以在两个方向上进行遍历,既可以从头节点向后遍历,也可以从尾节点向前遍历。
  • 循环链表:循环链表又分为单向循环链表和双向循环链表。单向循环链表的尾节点的指针指向头节点,形成一个环形结构,这样可以从任意一个节点出发,遍历整个链表。双向循环链表则是头节点的前驱指针指向尾节点,尾节点的后继指针指向头节点,同样实现了环形的结构,提供了更灵活的遍历方式。

2.链表实现

2.1创建链表

1)手动创建

即自己创建一个node类然后调用

package com.qcby;public class Node {Node next;int value;public static void main(String[] args) {Node node1 = new Node();node1.value = 1;Node node2 = new Node();node2.value = 2;node1.next = node2;System.out.println(node1.value);System.out.println(node1.toString());}public String toString() {return "Node[" +"next=" + next +", value=" + value +']';}
}

2)创建链表类进行管理链表的相关操作

使用 LinkList list = new LinkList(); 创建链表

2.2添加元素

1)头插法

头插法就是每次有一个新的元素进入链表时,将新节点插入到链表的头部,使其成为新的头节点。

代码如下:

	public void addHead(int value) {Node node=new Node(value);if(head==null) {head=node;return;}node.next=head;head=node;}

2)尾插法

当每次链表接受新的元素时,将新节点插入到链表的尾部,使其成为新的尾节点。

代码如下:

public void add(int data) {Node node = new Node();node.value = data;if (head == null) {head = node;} else {Node temp = head;while (temp.next != null) {temp = temp.next;}temp.next = node;}}

3)任意位置插入

在接收到新元素时,给新元素的位置做规定,即任意位置插入是将新节点插入到链表的指定位置。

代码:

public void addIndex(int index, int data) {Node node = new Node();node.value = data;if (index < 0 || index > getLength()) {System.out.println("超出范围");return;}if (index == 0) {addHead(data);} else {Node temp = head;for (int i = 0; i < index - 1; i++) {temp = temp.next;}node.next = temp.next;temp.next = node;}}

注意:想要实现任意位置插入,需要关注其链表长度,防止该插入位置比链表长度大出现问题

即实现一个求解长度的类,主要是通过遍历链表节点来记录长度:

    public int getLength() {int length = 0;Node temp = head;while (temp != null) {length++;temp = temp.next;}return length;}

2.3删除

public void remove(int data) {if (head == null) {System.out.println("链表为空");return;}if (head.value == data) {head = head.next;return;}Node temp = head;while (temp.next != null) {if (temp.next.value == data) {temp.next = temp.next.next;return;}temp = temp.next;}}

2.4查找

1)返回节点

    public Node find(int data) {Node temp = head;while (temp != null) {if (temp.value == data) {return temp;}temp = temp.next;}return null;}

2)返回索引

    public int findIndex(int data) {Node temp = head;int index = 0;while (temp != null) {if (temp.value == data) {return index;}temp = temp.next;index++;}return -1;}

http://www.dtcms.com/a/454595.html

相关文章:

  • 网站建设丂金手指科杰新兴街做网站公司
  • (四) Dotnet为AI控制台添加日志输出
  • php做企业网站管理系统购物网站制作公司
  • Shell test 命令详解
  • html网站素材网网站建设课程设计文献综述
  • 现在还做自适应网站网站设计要学什么
  • 品牌网站建设的关键事项网站遮罩是什么
  • 营销型网站建设排名网站建设公司需要申请icp吗
  • 江门营销网站建设推广的公司
  • 呼和浩特企业网站排名优化昌邑建设局网站
  • 手机网站建设多少钿个人在线做网站免费
  • 企业网站开发时间好看的网站设计
  • 公司的服务器能建设网站吗中国住建网证书查询
  • 乐清建设路小学网站淘宝网站开发多少金额
  • 大四记录10.7
  • 网站繁简通dedecms做的网站手机上看图片变形
  • MySQL的快速入门
  • 【1002】输出第二个整数
  • 网站建设及优化 赣icpwordpress lover
  • 可以看qq空间的网站网站分级怎么做
  • 建设部网站城乡规划资质标准手工活外发加工无押金
  • [Java]PTA:jmu-Java-03面向对象基础-覆盖与toString
  • 电子商务网站建设感悟安装vs2015网站开发
  • P1068 [NOIP 2009 普及组] 分数线划定
  • 邯郸装修网站建设专业的设计网站建设
  • 网站建设网络拓扑微信营销案例ppt
  • 校园网站模板企业邮箱注册方法
  • html5网站开发demoWordPress广告平台主题
  • 非对称加密
  • Java学习之旅第二季-10:包装类