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

青岛谁做网站多少钱天津seo网络营销

青岛谁做网站多少钱,天津seo网络营销,台州网站建设开发,静态企业网站模板本节介绍链表 目录 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/wzjs/286350.html

相关文章:

  • 做网站跳转怎么收费软文推广发稿平台
  • 邢台网站建设厂家淘宝如何刷关键词增加权重
  • 企业设计网站公司seo公司系统
  • 空间设计logo重庆放心seo整站优化
  • 先网站开发后软件开发好杭州做网站的公司排行
  • 全国建设信息网站企业宣传推广
  • 公司想为一个产品做多个网站上海seo公司排名
  • 亚星网站代理百度推广客户端下载网址
  • 基本原理网站建设数据平台
  • wordpress批量导入用户搜索引擎优化的要点
  • 定制网站开发报价搜索引擎是什么意思啊
  • dw做的网站如何上传云服务器网上销售渠道
  • 网站制作的企业有哪些网站推广优化方法
  • 动态网站建设 作业株洲24小时新闻
  • wordpress 全站备份软文平台有哪些
  • 网站死链怎么处理中央刚刚宣布大消息
  • 音乐网站怎么做社交的百度新闻网
  • 手机网站免费空间老铁seo外链工具
  • 响应式潍坊网站建设推广图片大全
  • wordpress简洁设置seo培训师
  • 哪些域名适合营销型网站seo搜索引擎优化人才
  • 从手机上可以做网站吗营销网站制作
  • html开发工具深圳优化公司统高粱seo
  • 网站频道运营怎么做小程序开发平台
  • 成都网站设计策划免费青岛网站制作公司
  • 云主机上传wordpress手机优化助手下载
  • 做网站做图电脑需要什么配置推广专家
  • 中山有网站建设公司吗宁波seo网络推广代理公司
  • 政务内网网站建设方案博客推广工具
  • 临沭有做网站的吗电商网络营销