一、链表说明:
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语言中数据结构实现的一些程序,具体涉及到了顺序链表、单链表和双链表以及栈的数据结构。下面我们将详细探讨这些知识点。 首先,我们来看顺序链表。顺序链表是一种线性数据结构,其元素在...
本文将深入探讨"合并有序链表"这一主题,这在单链表初学者中是非常重要的话题。链表作为一种非线性数据结构,与数组相比,具有更灵活的内存管理优势,尤其在动态增删元素时更为便捷。 首先,我们来理解什么是链表。...
#### 一、线性链表与单链表概念解析 - **线性链表**:是一种基本的数据结构类型,属于线性表的一种存储方式。线性表是由n个元素组成的有限序列,每个元素都有一个直接前驱和一个直接后继,除了第一个元素没有直接...
/*输入数据创建链表*/ case 2:list();break; /*显示所有数据*/ case 3:calc();break; /*计算实发工资*/ case 4:search();break; /*查找职工信息数据*/ case 5:delete();break; /*删除记录*/ case 6:sort();...
//用前插法建立单链表,为逆序输入法// /////在单链表的第i个位置插入结点为e///// ////输出单链表////////逆置单链表////
本话题主要探讨两种常用的数据结构——单链表和双向链表在Java中的实现,以及相关的操作,如在头部添加节点、在尾部添加节点、遍历、逆置和删除。 首先,我们来理解单链表和双向链表的基本概念。单链表是一种线性...
链表可以分为单链表、双链表和循环链表三种,下面我们将详细介绍这些链表的操作。 单链表 单链表是一种基本的链表结构,其中每个节点只有一个指针指向下一个节点。单链表的实现可以通过结构体来实现,如上面的代码...
单链表是数据结构中一种基础且重要的线性结构,它在VC++编程环境中有着广泛的应用。VC++,全称Visual C++,是Microsoft公司开发的一款强大的C++集成开发环境,支持Windows平台上的应用程序开发。 单链表由一系列...
在C语言中实现单链表的各种功能,首先需要定义一个结构体类型来表示链表节点。例如: ```c typedef struct Node { int data; // 数据域,这里假设存储整型数据 struct Node* next; // 指针域,指向下一个节点 } ...
标题中的"链表之VB实现(类).rar"表明这是一个使用VB的类模块来实现链表的例子,具体是单链表的实现。 单链表是一种线性数据结构,每个元素(节点)包含两部分:数据域和指针域。数据域存储实际的数据,而指针域指向...
"C++指针构建链表实现单链表的建立" 在计算机科学中,链表是一种基本的数据结构,它允许我们存储和操作大量的数据。链表是一种动态的数据结构,可以随着数据的增加或删除而变化。今天,我们将讨论如何使用C语言来...
2. **单链表**:单链表是链表的一种,每个节点只有一个指针,用于链接到下一个节点。与双链表相比,单链表的插入和删除操作相对简单,但无法直接访问前一个节点。 3. **VC++**:VC++是Microsoft开发的一个集成开发...
这里我们将深入探讨单链表、双链表和循环链表的概念,以及它们在C语言中的实现。 1. **单链表**: - 单链表由一系列节点组成,每个节点包含两部分:数据域和指针域。数据域存储实际的数据,指针域则指向下一个节点...
链表—链式存储 2 链表概述 3 单链表 4 单链表概念和简单的设计 4 链表的初始化 5 头插入法创建单链表 6 尾插入法创建单链表 7 遍历单链表如打印、修改 8 插入操作 9 删除操作 10 双向链表 11 双向链表的简介以及...
用顺序链表,单链表,静态链表三种结构求解的约瑟夫josephus问题,完整的代码,可以直接编译,运行的,
本文将详细讲解使用C语言实现的单链表和循环链表。 单链表是一种线性数据结构,其中每个元素(称为节点)包含数据和一个指向下一个节点的引用(指针)。在C语言中,我们可以通过定义一个结构体来表示链表的节点: ...
本主题将深入探讨如何使用C++实现单链表和双链表,以及它们的基本操作。 单链表是每个节点包含数据元素和一个指向下一个节点的指针的数据结构。双链表则更进一步,每个节点不仅有数据和指向下一个节点的指针,还有...
循环单链表和双链表是数据结构中的基础概念,它们在计算机科学中扮演着重要角色,尤其是在处理线性数据序列时。这两种链表都属于动态数据结构,因为它们允许在运行时添加或删除元素,而不需要预先知道数据的大小。 ...
本文将深入探讨Python中四种不同类型的链表——单链表、双链表、循环单链表和循环双链表,以及顺序表的相关操作。 首先,**单链表** 是一种简单的数据结构,每个节点包含数据和一个指向下一个节点的指针。在Python...