`
isiqi
  • 浏览: 16588842 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

(九)链表—单链表

阅读更多

一、链表说明:

1. 链表是继数组之后的又一个使用很广泛的数据结构。链表包括有单链表、双端链表、有序链表、双向链表和有迭代器的链表等。

2. 在链表中,每个数据项在“链结点”(Link)中。每个Link对象都包含一个对下一个链结点的引用字段(通常叫做next),链表本身有一个字段指向对第一个链结点的引用。链表的结构如图所示:

单链表

二、单链表的操作:

1. 单链表包含的操作:在链表头插入一个数据项;在链表头删除一个数据项;遍历链表显示他的内容。

三、Java语言描述单链表:

package com.solid.link;

public class Link {

//链结点的引用

Link next;

//链表中存放的数据

int iDate;

/**

* 构造方法

* @param iDate

*/

public Link(int iDate) {

this.iDate = iDate;

}

/**

* 显示链结点元素

*/

public void display() {

System.out.print("{" + iDate + "}");

}

}

package com.solid.link;

public class LinkList {

//对第一个链结点的引用

Link first;

/**

* 链表的构造方法

*/

public LinkList() {

first = null;

}

/**

* 链表首部插入一个元素

* @param iDate

*/

public void insertFirst(int iDate) {

Link link = new Link(iDate);

link.next = first;

first = link;

}

/**

* 删除链表首部元素

* @return

*/

public Link deleteFirst() {

Link temp = first;

first = first.next;

return temp;

}

/**

* 显示某个链表的所有元素

*/

public void display() {

Link current = first;

while(!(current==null)) {

current.display();

current = current.next;

}

System.out.println();

}

/**

* 查找链表中某个特定的元素

* @param key

* @return

*/

public Link find(int key) {

Link current = first;

while(current.iDate != key) {

if(current.next == null) {

return null;

}

current = current.next;

}

return current;

}

/**

* 删除链表中某个特定的元素

* @param key

* @return

*/

public Link delete(int key) {

Link current = first;

Link previous = first;

while(current.iDate != key) {

if(current.next == null) {

return null;

} else {

previous = current;

current = current.next;

}

}

if(current == first) {

first = first.next;

} else {

previous.next = current.next;

}

return current;

}

}

分享到:
评论

相关推荐

    C语言 顺序链表 单链表 双链表 栈等程序

    本压缩包文件包含了关于C语言中数据结构实现的一些程序,具体涉及到了顺序链表、单链表和双链表以及栈的数据结构。下面我们将详细探讨这些知识点。 首先,我们来看顺序链表。顺序链表是一种线性数据结构,其元素在...

    数据结构 合并有序链表 单链表 初学

    本文将深入探讨"合并有序链表"这一主题,这在单链表初学者中是非常重要的话题。链表作为一种非线性数据结构,与数组相比,具有更灵活的内存管理优势,尤其在动态增删元素时更为便捷。 首先,我们来理解什么是链表。...

    线性链表 单链表 可运行C++和C结合的代码 结合严蔚敏编写

    #### 一、线性链表与单链表概念解析 - **线性链表**:是一种基本的数据结构类型,属于线性表的一种存储方式。线性表是由n个元素组成的有限序列,每个元素都有一个直接前驱和一个直接后继,除了第一个元素没有直接...

    C语言 工资管理系统 (双链表 单链表)VC上面可以运行

    /*输入数据创建链表*/ case 2:list();break; /*显示所有数据*/ case 3:calc();break; /*计算实发工资*/ case 4:search();break; /*查找职工信息数据*/ case 5:delete();break; /*删除记录*/ case 6:sort();...

    链表 建立链表 逆置单链表

    //用前插法建立单链表,为逆序输入法// /////在单链表的第i个位置插入结点为e///// ////输出单链表////////逆置单链表////

    java 单链表和双向链表的实现

    本话题主要探讨两种常用的数据结构——单链表和双向链表在Java中的实现,以及相关的操作,如在头部添加节点、在尾部添加节点、遍历、逆置和删除。 首先,我们来理解单链表和双向链表的基本概念。单链表是一种线性...

    单链表、双链表、循环链表的操作

    链表可以分为单链表、双链表和循环链表三种,下面我们将详细介绍这些链表的操作。 单链表 单链表是一种基本的链表结构,其中每个节点只有一个指针指向下一个节点。单链表的实现可以通过结构体来实现,如上面的代码...

    用VC编写单链表(数据结构).rar_VC 链表_单链表_数据结构 链表_链表

    单链表是数据结构中一种基础且重要的线性结构,它在VC++编程环境中有着广泛的应用。VC++,全称Visual C++,是Microsoft公司开发的一款强大的C++集成开发环境,支持Windows平台上的应用程序开发。 单链表由一系列...

    单链表 单链表 单链表 链表

    在C语言中实现单链表的各种功能,首先需要定义一个结构体类型来表示链表节点。例如: ```c typedef struct Node { int data; // 数据域,这里假设存储整型数据 struct Node* next; // 指针域,指向下一个节点 } ...

    链表之VB实现(类).rar_VB 链表_单链表dll vb_链表_链表 vb

    标题中的"链表之VB实现(类).rar"表明这是一个使用VB的类模块来实现链表的例子,具体是单链表的实现。 单链表是一种线性数据结构,每个元素(节点)包含两部分:数据域和指针域。数据域存储实际的数据,而指针域指向...

    c++指针构建链表实现单链表的建立

    "C++指针构建链表实现单链表的建立" 在计算机科学中,链表是一种基本的数据结构,它允许我们存储和操作大量的数据。链表是一种动态的数据结构,可以随着数据的增加或删除而变化。今天,我们将讨论如何使用C语言来...

    danlianbiao.rar_VC 链表_单链表 通讯录

    2. **单链表**:单链表是链表的一种,每个节点只有一个指针,用于链接到下一个节点。与双链表相比,单链表的插入和删除操作相对简单,但无法直接访问前一个节点。 3. **VC++**:VC++是Microsoft开发的一个集成开发...

    单链表 双链表 循环链表 源代码

    这里我们将深入探讨单链表、双链表和循环链表的概念,以及它们在C语言中的实现。 1. **单链表**: - 单链表由一系列节点组成,每个节点包含两部分:数据域和指针域。数据域存储实际的数据,指针域则指向下一个节点...

    20多张无水印图熟练理解和掌握单链表-双向链表-循环链表(原理+C源码)

    链表—链式存储 2 链表概述 3 单链表 4 单链表概念和简单的设计 4 链表的初始化 5 头插入法创建单链表 6 尾插入法创建单链表 7 遍历单链表如打印、修改 8 插入操作 9 删除操作 10 双向链表 11 双向链表的简介以及...

    顺序链表,单链表,静态链表求解的约瑟夫问题josephus的C语言代码,可以直接运行

    用顺序链表,单链表,静态链表三种结构求解的约瑟夫josephus问题,完整的代码,可以直接编译,运行的,

    c语言实现的单链表和循环链表

    本文将详细讲解使用C语言实现的单链表和循环链表。 单链表是一种线性数据结构,其中每个元素(称为节点)包含数据和一个指向下一个节点的引用(指针)。在C语言中,我们可以通过定义一个结构体来表示链表的节点: ...

    c++实现单链表与双链表

    本主题将深入探讨如何使用C++实现单链表和双链表,以及它们的基本操作。 单链表是每个节点包含数据元素和一个指向下一个节点的指针的数据结构。双链表则更进一步,每个节点不仅有数据和指向下一个节点的指针,还有...

    循环单链表-双链表_循环单链表-双链表_throat6v2_

    循环单链表和双链表是数据结构中的基础概念,它们在计算机科学中扮演着重要角色,尤其是在处理线性数据序列时。这两种链表都属于动态数据结构,因为它们允许在运行时添加或删除元素,而不需要预先知道数据的大小。 ...

    Python实现单链表、双链表、循环单链表、循环双链表、顺序表相关操作

    本文将深入探讨Python中四种不同类型的链表——单链表、双链表、循环单链表和循环双链表,以及顺序表的相关操作。 首先,**单链表** 是一种简单的数据结构,每个节点包含数据和一个指向下一个节点的指针。在Python...

Global site tag (gtag.js) - Google Analytics