博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 实现简答的单链表的功能
阅读量:6253 次
发布时间:2019-06-22

本文共 3157 字,大约阅读时间需要 10 分钟。

作者:林子木  博客网址:http://blog.csdn.net/wolinxuebin

參考网址:http://blog.csdn.net/sunsaigang/article/details/5751780

描写叙述:使用java实现简答的单链表的功能

定义了一个MyList类

包括的函数:

   getHead()返回头指针。

isEmpty() 推断是否为空;

addFirst(T element)在链表的头部增加元素。

addLast(T element)在链表的尾部增加元。

add(T fix,T element)在指定元素fix后插入新的元素

remove(T element) 删除指定元素

contains(T element)查看是否包括某元素

printList()打印链表。

其它:

 使用泛型

程序代码例如以下:

public class MyList
{ //使用泛型 /* * 定义节点类Node */ private static class Node
{ T element; Node
next; Node(T element,Node
next){ //构造函数 this.element = element; this.next = next; } Node(T element){ //构造函数 this(element,null); //调用上面的构造函数 } } //定义MyList成员 private Node
head; //定义头结点 /* *构造函数 */ MyList(){ head = null; } /* *返回头指针 */ public Node
getHead(){ return head; } /* *查看链表是否为空 */ public boolean isEmpty(){ return null == head; //推断是否为空 } /* *将元素增加链表头 */ public void addFirst(T element){ if(isEmpty()) head = new Node
(element); else head = new Node
(element,head); } /* *将元素增加链表尾 */ public void addLast(T element){ if(isEmpty()) head = new Node
(element);//假设为空 else { Node
node = head; //不为空,就使用查找,知道表尾 while(node.next != null) node = node.next; node.next = new Node
(element); } } /* *在指定元素后增加新元素 */ public boolean add(T fix,T element){ if(isEmpty()) return false; else { Node
node = head; //定义中间变量 while(node.element != fix && null != node.next){//程序跳出条件为1、到表尾 2、找到这个元素 node = node.next; //查找是否含有元素 } //这里採用直接使用while查找,而推断在while外面。能够加高速度 if(node.element == fix){ //这里首先推断是否找到元素 node.next = new Node
(element,node.next) ;//将element插入。并将element的next指向下一个元素 return true; } else return false; } } /* *删除指定元素 */ public boolean remove(T element){ if(isEmpty()) return false; Node
node = head; //定义变量pre 和 node Node
pre = null; while(node.element != element && null != node.next){ //程序跳出条件为1、到表尾 2、找到这个元素 pre = node; //保存前面的变量 node = node.next; //指向下一个元素 } if(node.element == element){ if(null == pre) //假设是指定元素是第一个元素 head = head.next; else pre.next = node.next; return true; } else return false; } /* *查看是否包括某元素 */ public boolean contains(T element){ if(isEmpty()) return false; else { Node
node = head; while(node.element != element && null != node.next)//程序跳出条件为1、到表尾 2、找到这个元素 node = node.next; //不断指向下一个程序 if(node.element == element) return true; else return false; } } /* *打印链表 */ public void printList(){ if(isEmpty()){ System.out.println("null"); } else{ for(Node
node=head; node!=null;node=node.next) System.out.print(node.element +" "); System.out.println(); //打印回车 } } public static void main(String[] args) { MyList
list = new MyList
();//若不加
便是为指定參数类型,将会警告 //使用了未经检查或不安全的操作。 //有关具体信息, 请使用 -Xlint:unchecked 又一次编译。 for(int i=0; i<10; i++){ list.addFirst(i); } list.printList(); //打印 list.remove(0); //删除 list.printList(); //打印 list.addLast(0); //在尾部增加 list.printList(); //打印 list.add(7,-7); //在7之后插入-7 list.printList(); //打印 if(list.contains(-7)) System.out.println("is in the list !"); else System.out.println("is not in the list !"); }}

你可能感兴趣的文章
iOS开发基础知识--碎片19
查看>>
JavaScript中Object.prototype.toString方法的原理
查看>>
自定义input[type="radio"]的样式
查看>>
SQL Server 2014内存优化表的使用场景
查看>>
js面向对象初步探究(上) js面向对象的5种写方法
查看>>
Create the Data Access Layer
查看>>
Python使用chardet包自动检测编码
查看>>
Android必知必会-Android Studio修改包名
查看>>
bootstrap -- 一个标签中,同时有 col-xs , col-sm , col-md , col-lg
查看>>
IEEE754标准的浮点数存储格式
查看>>
Babel插件开发入门指南
查看>>
浅谈iOS 自动调节文本高度
查看>>
oracle易忘函数用法(2)
查看>>
总结系列_14(OpenCV2.4.3的新特征以及安装方法)
查看>>
虚拟地址空间分配
查看>>
HDU 4465 - Candy(概率与数学优化)
查看>>
提高你的Java代码质量吧:使用构造函数协助描述枚举项
查看>>
Struts2 学习笔记20 类型转换part2 写自己的转换器
查看>>
网站接入支付宝
查看>>
mybatis+spring配置
查看>>