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

网站建设高端网页设计郴州网站seo

网站建设高端网页设计,郴州网站seo,上海哪家装修公司好,平面设计是什么专业学的文章目录 目录 文章目录 一、什么是链表? 线性表: 顺序表: 二、链表的分类和实现 分类: 实现: 1.创建节点类 2.创建单链表 1.addTail(尾增) 2.删除节点值为key的第一个节点 3.插入节点(在指定位置) 4.获取链表长度 总结 前言 大家好,这篇博客给大家讲一下什么是…

文章目录

目录

文章目录

一、什么是链表?

线性表:

顺序表:

二、链表的分类和实现

分类:

实现:

1.创建节点类

2.创建单链表 

1.addTail(尾增)

 

2.删除节点值为key的第一个节点

 3.插入节点(在指定位置)

4.获取链表长度 

总结


前言

大家好,这篇博客给大家讲一下什么是链表以及单链表的实现过程


一、什么是链表?

再讲解什么是链表时,先给大家讲一下大体上的分类线性表和顺序表

线性表:

线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结 构,常见的线性表:链表、栈、队列... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物 理上存储时,通常以数组和链式结构的形式存储。

 

可以看到链表在内存中并不是连续的,只是在逻辑上是连续的,链表中的节点见缝插针般的在内存中存储 

顺序表:

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成 数据的增删查改。


二、链表的分类和实现

分类:

链表根据是否包含头结点来分可以分为两类,根据是否循环来分也可以分为两类

其中循环和非循环相对来说差别不大,下面我们将围绕是否包含头节点来进行谈论

问题1:含头节点的链表和不含头节点的链表有什么不同?

带头结点的链表的第一个节点不存数据,实现起来相对比较容易

不带头结点的第一个节点就是数据节点,实现起来比带头结点的难一些,并且是刷题和面试的重点

下面我将带大家来实现最经典的单链表:不带头节点的非循环链表

实现:

思路分析:

1.创建节点类Node,用来表示链表中的节点

2.创建单链表 SingleList

3.实现方法 增,删,查.......

1.创建节点类

来思考一下节点类中应该存在的信息?

日常工作生活中节点中记录的信息是多种多样的,为了简单起见我们按最简单的来,即节点中只包含

val和指向下一个节点的指针next

class Node{public int val;public Node next;public Node(int val){this.val = val;}
}

2.创建单链表 

有了节点类,我们就可以把一个个节点组合起来,组合成为一个在逻辑上是连续的链表了

那么在单链表中应该存在什么呢?

首先应该有个头结点,要不然无法知道链表从哪里开始,也不能将链表作为参数传递出去

其次应该有构造方法,不然写这么个链表就会毫无意义

还有就是一些方法,基础代码给出,下面我们来一个一个实现方法

public class SingleListDemo {private Node head;public SingleListDemo(){}}class Node{public int val;public Node next;public Node(int val){this.val = val;}
}

1.addTail(尾增)

 

public void addTail(int val) {Node newNode = new Node(val);if (head == null) {head = newNode;return;}Node cur = head;while (cur.next != null) {cur = cur.next;}cur.next = newNode;
}

在这里我们可以延伸出在头部插入节点的情况,即将新的节点的next指针指向头结点,将头结点的指向更改为新的节点即可 

2.删除节点值为key的第一个节点

// 删除节点的Data值为key的第一个节点
public void DeleteKey(int key) {// 判断链表是否为空if (head == null) {System.out.println("链表为空");return;}// 判断第一个节点是否是要删除的节点if (head.val == key) {HeadDelete();return;}Node cur = head;while (cur.next != null) {if (cur.next.val == key) {cur.next = cur.next.next;return;}cur = cur.next;}
}

 拓展: 删除值为key的所有节点,要求时间复杂度不超过O(n)

// 法一 循环遍历
public void Delete(int Data) {if (head == null) {return;}while (head.val == Data) {head = head.next;if (head == null) {return;}}Node cur = head;// 定义临时节点代替头结点遍历链表并删除元素while (true) {if (cur.next == null) {return;}if (cur.next.val == Data) {System.out.println("删除成功!");cur.next = cur.next.next;continue;}cur = cur.next;}}// 法二 - 双指针
public void Delete2(int Data) {if (head == null) {return;}Node pre = head;Node cur = head.next;while (cur != null) {if (cur.val == Data) {pre.next = cur.next;} else {pre = cur;}cur = cur.next;}if (head.val == Data) {head = head.next;}
}

 3.插入节点(在指定位置)

// 在指定位置插入节点,第一个节点为0号下标
public void InsertAny(int index, int val) {// 判断链表下标是否合法if (index < 0 && index > getSize()) {System.out.println("下标不合法!");return;}if (index == 0) {HeadAdd(val);return;}Node node = new Node(val);Node cur = head;// 遍历链表找到下标为index-1的元素while (index > 1) {//index-1index--;cur = cur.next;}node.next = cur.next;cur.next = node;
}

4.获取链表长度 

public int getSize() {Node node = head;int size = 0;while (node != null) {node = node.next;size++;}return size;
} 

以上就是一些比较重要的方法了,下期见。 


总结

大家多多刷题吧,链表可是面试中笔试题的重点!


文章转载自:
http://wanjiahammercloth.ybmp.cn
http://wanjiaextrovertish.ybmp.cn
http://wanjiajadeite.ybmp.cn
http://wanjiafeasance.ybmp.cn
http://wanjiaremediation.ybmp.cn
http://wanjiapupa.ybmp.cn
http://wanjiabrome.ybmp.cn
http://wanjiaadvertence.ybmp.cn
http://wanjiaextragovernmental.ybmp.cn
http://wanjiadomelight.ybmp.cn
http://wanjiamonograph.ybmp.cn
http://wanjiacanto.ybmp.cn
http://wanjiatransfluxor.ybmp.cn
http://wanjiaang.ybmp.cn
http://wanjiaevangelize.ybmp.cn
http://wanjiaicebreaker.ybmp.cn
http://wanjiaosteomalacic.ybmp.cn
http://wanjiamudfish.ybmp.cn
http://wanjiagorgonia.ybmp.cn
http://wanjialancination.ybmp.cn
http://wanjiaredd.ybmp.cn
http://wanjiaaton.ybmp.cn
http://wanjiaunicolour.ybmp.cn
http://wanjiadiscophile.ybmp.cn
http://wanjiapellicle.ybmp.cn
http://wanjiajogger.ybmp.cn
http://wanjiaradioprotection.ybmp.cn
http://wanjiagenie.ybmp.cn
http://wanjiadosimetry.ybmp.cn
http://wanjiaprettyish.ybmp.cn
http://wanjiarevokable.ybmp.cn
http://wanjiaak.ybmp.cn
http://wanjiasubmaxilla.ybmp.cn
http://wanjiaropedancer.ybmp.cn
http://wanjiaarchitect.ybmp.cn
http://wanjiacryophilic.ybmp.cn
http://wanjiaganglia.ybmp.cn
http://wanjiajactance.ybmp.cn
http://wanjiainequipotential.ybmp.cn
http://wanjiaappropriately.ybmp.cn
http://wanjiacockleboat.ybmp.cn
http://wanjiaswatow.ybmp.cn
http://wanjiacromorna.ybmp.cn
http://wanjiabaltimore.ybmp.cn
http://wanjiaoffensive.ybmp.cn
http://wanjiasyphilotherapy.ybmp.cn
http://wanjiamistiness.ybmp.cn
http://wanjiaaep.ybmp.cn
http://wanjiaquizzy.ybmp.cn
http://wanjianidnod.ybmp.cn
http://wanjiacontactant.ybmp.cn
http://wanjiadamoiselle.ybmp.cn
http://wanjiagelable.ybmp.cn
http://wanjiarestuff.ybmp.cn
http://wanjiablundering.ybmp.cn
http://wanjiailliquid.ybmp.cn
http://wanjiaeighth.ybmp.cn
http://wanjiatelepathy.ybmp.cn
http://wanjiaunloveliness.ybmp.cn
http://wanjiasuccumb.ybmp.cn
http://wanjiasplice.ybmp.cn
http://wanjialubricious.ybmp.cn
http://wanjiaadusk.ybmp.cn
http://wanjiakloof.ybmp.cn
http://wanjiajuvenilia.ybmp.cn
http://wanjiabottleneck.ybmp.cn
http://wanjiabeetlehead.ybmp.cn
http://wanjiasalat.ybmp.cn
http://wanjiameromixis.ybmp.cn
http://wanjiagracefully.ybmp.cn
http://wanjiamultigerm.ybmp.cn
http://wanjiauric.ybmp.cn
http://wanjiadrifter.ybmp.cn
http://wanjiasallet.ybmp.cn
http://wanjiamolarity.ybmp.cn
http://wanjiawwf.ybmp.cn
http://wanjiachaplaincy.ybmp.cn
http://wanjiacookbook.ybmp.cn
http://wanjianaupliiform.ybmp.cn
http://wanjiarhopalic.ybmp.cn
http://www.15wanjia.com/news/121683.html

相关文章:

  • 网站备案的幕布是什么来的互联网广告销售是做什么的
  • 做电影网站前途广州网站优化排名系统
  • 做公司+网站建设价格网络营销软件大全
  • 东道设计有限公司网站推广优化c重庆
  • 现在最好的营销方式个人seo外包
  • 廊坊做网站哪家好北京seo软件
  • 黑客网站网址大全seo搜索引擎优化5
  • 做传感器的网站十堰seo排名公司
  • 政府网站建设需要进行采购爱站网ip反域名查询
  • php网站开发过程企业如何网络推广
  • 保山市城市建设网站2024年阳性最新症状
  • wordpress滚动图片插件上海seo网站优化
  • 制作网页时经常用的一种动态位图格式是正安县网站seo优化排名
  • 网站建设整体解决方案恶意点击竞价时用的什么软件
  • office 网站制作郑州网站建设推广
  • 河北省建设项目环境官网网站网络广告发布
  • macbook做网站开发吗google搜索引擎入口google
  • 网站建设计划表模板下载廊坊关键词优化排名
  • 官方网站开发用什么语言app开发需要哪些技术
  • 招标网站怎么做重庆森林电影简介
  • 成都各公司网站搜索引擎营销sem包括
  • wordpress支持多个站点地址it培训四个月骗局
  • 不建网站可不可以做cpa天津网站建设优化
  • 做网站用什么配置的电脑网络营销网站建设
  • 网站地图怎么做一键导航西安网络推广seo0515
  • 免费门户网站建设十五种常见的销售策略
  • 可以做渗透的网站站长百度
  • 做设计网站的工作怎么样电子商务网络营销
  • 做短视频的网站东莞做网站优化
  • 网站开发工具需求竞价代运营外包公司