java实现链表指定值得删除,查找第二部分代码
2014-04-18 09:31
651 查看
package com.liu.Link; public class LinkList1 { private Link first; public LinkList1() { first = null; } public void insertFirst(int id,double dd) { Link newLink = new Link(id,dd); newLink.next = first; first = newLink; } public Link find(int key) { Link current = first; while(current.iData!=key) { if(current.next == null) return null; else current = current.next; } return current; } public Link delete(int key) { Link current = first; Link previous = first; while(current.iData != key) { if(current.next == null) return null; else { previous = current; current = current.next; } } //情况1,删除的数字就是first指针指向的位置 if(current == first) { first = first.next; } //情况2,删除的数字是中间位置 else { previous.next = current.next; } //current就是previous.next return current; } public void displayList() { System.out.print("List (first-->last):"); Link current = first; while(current != null) { current.displayLink(); current = current.next; } System.out.println(""); } } //链表数据类 class Link { public int iData; public double dData; public Link next; public Link(int id,double dd) { iData = id; dData = dd; } public void displayLink() { System.out.print("{"+ iData +", "+ dData +"}"); } } class LinkListApp { public static void main(String args[]) { LinkList1 theList = new LinkList1(); theList.insertFirst(22, 2.99); theList.insertFirst(44, 4.99); theList.insertFirst(66, 6.99); theList.insertFirst(88, 8.99); theList.insertFirst(33, 3.99); theList.displayList(); Link f = theList.find(44); if(f!=null) System.out.println("Fount link with key "+f.iData); else System.out.println("can't find link"); Link d = theList.delete(66); if( d != null ) System.out.println("Deleted link with key " + d.iData); else System.out.println("Can't delete link"); theList.displayList(); } }
相关文章推荐
- 数据结构——查找和删除指定连接点(java实现)
- 如何在O(1)时间删除链表指定节点(Java实现)
- 用JAVA语言,编写一个链表类(双向链表),实现插入,删除,查找操作
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 数据结构与算法分析笔记与总结(java实现)--链表14:删除链表中所有指定值结点问题
- 剑指Offer 面试题18:删除链表节点 Java代码实现
- java实现创建链表以及插入节点,查找结点,删除节点等操作
- 【第五节】Java代码实现栈----【链表的存储形式】
- (C语言版)链表(一)——实现单向链表创建、插入、删除等简单操作(包含个人理解说明及注释,新手跟着写代码)
- Java关于链表的增加、删除、获取长度、打印数值的实现
- Java实现单链表的插入、删除、计算链表的长度和输出链表
- js从数组中删除指定值(不是指定位置)的元素实现代码
- 剑指Offer面试题57:删除重复链表 Java实现
- Cocos2d-x简单游戏<打飞机>代码实现|第二部分:子弹类
- 删除链表中重复的结点java实现
- Java代码实现获取安卓手机指定App的流量、CPU和内存占用信息
- java代码实现输出指定以.java结尾的文件的绝对路径
- 二叉查找树的查找、插入和删除 - Java实现
- java代码实现输出指定以.java结尾的文件的绝对路径
- javascript实现二叉树的创建,遍历,添加,查找最大值最小值和指定值的寻找及删除功能——递归的多次运用