一、链表说明:
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语言版>
/*输入数据创建链表*/ case 2:list();break; /*显示所有数据*/ case 3:calc();break; /*计算实发工资*/ case 4:search();break; /*查找职工信息数据*/ case 5:delete();break; /*删除记录*/ case 6:sort();...
合并有序链表 嵌入式技术公开课数据结构笔记
//用前插法建立单链表,为逆序输入法// /////在单链表的第i个位置插入结点为e///// ////输出单链表////////逆置单链表////
文档包括带表头单链表的实现,双链表的操作,双链表的冒泡排序,不带表头的单链表,双向链表、链表节点的排序
用VC编写的单链表 是数据结构中线性表中的一种
c语言数组指定位置插入和删除-玩转C语言链表,单链表双向链表的建立遍历插入删除... 数组和链表.pdf
操作包括: 1. 在头部添加结点 2. 在尾部添加结点 3. 遍历 4. 逆置 5. 删除
链表—链式存储 2 链表概述 3 单链表 4 单链表概念和简单的设计 4 链表的初始化 5 头插入法创建单链表 6 尾插入法创建单链表 7 遍历单链表如打印、修改 8 插入操作 9 删除操作 10 双向链表 11 双向链表的简介以及...
用顺序链表,单链表,静态链表三种结构求解的约瑟夫josephus问题,完整的代码,可以直接编译,运行的,
创建链表,插入元素,删除元素,找元素位置,知道位置求值等,绝对好用
单链表实现双向循环链表单向链表存在一个弊端就是,当需要获取某个结点p的前驱时,需要从头指针开始遍历链表,获得“前驱”的执行时间为O(n),为了克服单向链表的这种缺点,可以利用双向链表。在双向链表中有两个...
链表一般是用C或C++实现的,用VB的类模块实现,试过吗?没想到可以实现吧
本文通过数据结构教程的方法利用C++语言写了单链表的各项功能 功能包括 1.链表的初始化 2.链表的查找和判断是否为空表 3.插入 4.取值 5.插入(尾插法) 6.链表的输出 7.//删除指定元素 8.//链表的释放 其中有着详细...
数据结构中 单链表 双链表 循环链表 c语言代码。
c语言实现的单链表和循环链表,没有用到任何的库,直接内存分配创建链表节点和删除链表节点
vc++的单链表通讯录设计,适用于初学者学习使用。
主要写了三种链表(单链表 循环链表 双向链表)及其基本操作(操作已封装成类) 详细请看“心希盼 链表.doc ”
本程序实现了单链表和双向链表的一些基本操作,包括建表,插入,删除等,对学习数据结构的人会有帮助!!!