java数据结构之链表的实现
这个链表的内部是使用双向链表来表示的,但是并未在主函数中进行使用
/**
* 链表
* 2016/4/26
**/
class LinkList{
Node head = new Node();
Node tail = new Node();
int size = 0;
public LinkList(){
head.next = tail;
this.head.date = "head";
tail.last = head;
tail.next = null;
this.tail.date = "tail";
} //内部节点类k
class Node{
String date; //数据域
Node next; //指向下一个节点
Node last; //指向上一个节点
Node(){};
Node(String date){
this.date = date;
this.next = null;
this.next = null;
}
} //向链表中添加一个数据 在指定的位置上插入
public void Insert(String date){
Node newNode = new Node(date);
newNode.next = this.head.next;
newNode.last = this.head;
this.head.next.last = newNode;
this.head.next = newNode;
System.out.println("插入数据"+date+"成功");
this.size++;
} //遍历链表输出
public void PrintLink( LinkList linklist){
Node preNode = new Node();
preNode.next = this.head.next;
System.out.print("遍历输出结果:");
while(true){
System.out.print(preNode.next.date+" -->");
if(preNode.next.next.next == null) break;
preNode.next = preNode.next.next;
}
System.out.println("遍历输出完成~~~");
} //删除链表中的某一个数
public void DeleteLink(String date){
Node preNode = new Node();
preNode = this.head;
Node node = null;
while(preNode.next != this.tail){ node = preNode;
preNode = preNode.next;
if(preNode.date == date){
node.next = preNode.next;
System.out.println("删除元素"+date+"成功");
this.size--;
}
}
}
} public class DoublyLinkList{
//主函数测试
public static void main(String[] args){
LinkList linklist = new LinkList();
linklist.Insert("lv1");
linklist.Insert("lv2");
linklist.Insert("lv3");
linklist.Insert("lv4");
linklist.Insert("lv5");
linklist.Insert("lv6");
linklist.Insert("lv7");
linklist.Insert("lv8");
linklist.Insert("lv9");
linklist.Insert("lv0");
linklist.Insert("lv11");
linklist.Insert("lv12");
linklist.Insert("lv13");
linklist.Insert("lv14");
System.out.println("链表的长度为:"+linklist.size);
linklist.PrintLink(linklist);
//删除lvbiao3
linklist.DeleteLink("lv3");
linklist.PrintLink(linklist); linklist.DeleteLink("lv14"); linklist.DeleteLink("lv12"); linklist.PrintLink(linklist);
System.out.println("tail:"+linklist.tail.date);
}
}
java数据结构之链表的实现的更多相关文章
- JAVA数据结构之链表
JAVA数据结构之链表 什么是链表呢? 链表作为最基本的数据结构之一,定义如下: 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 简单来说呢,链 ...
- JAVA数据结构——单链表
链表:一. 顺序存储结构虽然是一种很有用的存储结构,但是他有如下几点局限性:1. 因为创造线性表的时候已经固定了空间,所以当需要扩充空间时,就需要重新创建一个地址连续的更大的存储空间.并把原有的数据元 ...
- java数据结构之链表(java核心卷Ⅰ读书笔记)
1.链表 数组和ArrayList的一个重大缺陷就是:从中间位置删除一个元素要付出很大的代价,因为在这个元素删除之后,所有的元素都要向前端移动,在中间的某个位置插入一个元素也是这个原因. (小感悟:s ...
- 【Java数据结构】Java数据结构之链表反转
我们都知道用C可以很简单的实现单链表反转,今天来学习下,在Java中如何实现链表反转. 思路很简单,定义一个类,这个类分成2块,一块是表示自身的标志,另外一个存储指向下一个元素的引用.通过互换相邻两个 ...
- Java数据结构之链表(Linked List)
1.链表(Linked List)介绍 链表是有序的列表,但是它在内存存储结构如下: 2.特点: 链表是以节点的方式来存储,是链式存储 每个节点包含 data 域, next 域:指向下一个节点. 链 ...
- Java数据结构--单链表
#java学习经验总结------单链表的建立与结点的增删 在该链表结点有data数据,并且还有cpu,分给cpu随机的时间片,根据时间片大小进行结点data的排序 链表结点的建立 class Lin ...
- Java数据结构——用链表实现栈
//================================================= // File Name : LinkStack_demo //---------------- ...
- Java——数据结构(链表)
链表,可扩展长度,泛型. public class Link { Node header = null; //头结点 int length;//当前链表长度 class Node { Node nex ...
- java数据结构——单链表、双端链表、双向链表(Linked List)
1.继续学习单链表,终于摆脱数组的魔爪了,单链表分为数据域(前突)和引用域(指针域)(后继),还有一个头结点(就好比一辆火车,我们只关心火车头,不关心其它车厢,只需知晓车头顺藤摸瓜即可),头结点没有前 ...
随机推荐
- 文件传送,如此简单--ESFramework 4.0 快速上手(13)
在所有的通信系统中,文件传送是最常见也是最重要的功能之一,ESFramework对文件传送的强大支持也是其亮点之一,使用ESFramework可以非常轻松地实现与文件传送相关的所有需求.ESPlus. ...
- 【笔记】Loadrunner添加OS类型为Windows的服务器(Win7)
最近在学习Loadrunner,看到“监控Windows资源”,决定小试一把,由于没有找到合适的镜像,暂时没有搞好Windows的虚拟机,so 先用自己小试牛刀了只有,不过这样子好像难度锐减也~只要小 ...
- redis数据类型:lists
redis的list类型其实就是一个每个子元素都是string类型的双向链表. 我们可以通过push,pop操作从链表的头部或者尾部添加删除元素,这样list即可以作为 栈,又可以作为队列. lpus ...
- 1077. [NOIP2010冲刺六] 数列游戏
[题目描述] 小M很喜欢找点游戏自娱自乐.有一天,她在纸上写了一串数字:1,1,2,5,4.接着她擦掉了一个1,结果发现剩下1,2,4都在自己所在的位置上,即1在第1位,2在第2位,4在第4位.她希望 ...
- 20_学生选课数据库SQL语句练习题
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- NYOJ-915 +-字符串(贪心)
+-字符串 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同.Shiva一次可以把一个加号和它相邻的减号交换. ...
- linux之ls -l|grep "^-"|wc -l命令
查看某文件夹下文件的个数 ls -l |grep "^-"|wc -l 或 find ./company -type f | wc -l 查看某文件夹下文件的个数,包括子文件夹里的 ...
- html_web存储
HTML5存储 HTML5 web存储,一个比cookie更好的本地存储方式. 什么是HTML5 Web存储? 使用HTML5可以在本地存储用户的浏览数据. 早些时候,本地存储使用的是cookie.但 ...
- android 联网
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="htt ...
- 【bug】Unable to execute dex: Multiple dex files define
This is a build path issue. Make sure your bin folder is not included in your build path. Right clic ...