Java数据结构---链表常用操作(I)
来源:互联网 发布:淘宝怎么申请换货 编辑:程序博客网 时间:2024/06/06 19:47
Java数据结构---链表常用操作
今天写点Java数据结构中链表常用操作函数,包括很多操作,其中也包括很多在求职面试中会问到的一些试题,包括编程技巧。如果能仔细理解,体会下列算法相信一定会对自己的编程能力有所提高。比如:
(1)//添加节点 public Node addNode(int data)
(2)//返回链表的长度public int length()
(3)//删除指定位置的节点public boolean deleteNode(int index)
(4)//对列表中的元素排序public Node orderLink()
(5)//打印列表元素public void printLink()
(6)//删除重复元素Method:1 public void delDuplecate()
(7)//删除重复元素Method:2 public void delDup()
一、链表节点的定义如下:
package com.robin.Link;public class Node {public int data;public Node next = null;public Node(int data){this.data = data;}}
二、链表常用操作如下:
package com.robin.Link;import java.util.Hashtable;public class MyLink {static Node head = null;//添加节点public Node addNode(int data){Node newNode = new Node(data);if(head == null){head = newNode;return head;}Node temp = head;while(temp.next != null){temp = temp.next;}temp.next = newNode;return newNode;}//返回链表的长度public int length(){Node temp = head;int length = 0;while(temp != null){length++;temp = temp.next;}return length;}//删除指定位置的节点public boolean deleteNode(int index){if(index < 1 || index >length()){return false;}if(1 == index){head = head.next;return true;}Node preNode = head;Node curNode = preNode.next;int i=1;while(curNode != null){if( i == index){preNode = curNode.next;return true;}preNode = curNode;curNode = curNode.next;i++;}return true;}//对列表中的元素排序public Node orderLink(){Node preNode = head;Node curNode = null;while(preNode != null){curNode = preNode.next;while(curNode != null){if(preNode.data > curNode.data){int temp = curNode.data;curNode.data = preNode.data;preNode.data = temp;}curNode = curNode.next;}preNode = preNode.next;}return head;}//打印列表元素public void printLink(){Node temp = head;while(temp != null){System.out.print(temp.data + " \t");temp = temp.next;}System.out.println();}//删除重复元素Method:1public void delDuplecate(){Hashtable<Integer, Integer> hs = new Hashtable<Integer,Integer>();Node temp = head;while(temp != null){if(hs.containsKey(temp.data)){temp = temp.next;}else{hs.put(temp.data, 1);}}}//删除重复元素Method:2public void delDup(){Node temp = head;while(temp != null){Node nextNode = temp;while(nextNode.next != null){if(temp.data == nextNode.next.data){nextNode.next = nextNode.next.next;}else{nextNode = nextNode.next;}}temp = temp.next;}}
0 0
- Java数据结构---链表常用操作(I)
- JAVA 常用数据结构操作
- Java数据结构---链表常用操作(II)--续
- java I/O之常用操作
- 【数据结构与算法】java链表操作
- Java-I/O操作之字符流、其他常用流
- 《数据结构》 顺序表常用操作代码集合
- 数据结构之顺序表常用操作整理
- EL表达式i常用操作
- [数据结构]链表操作
- 数据结构-链表操作
- 链表的常用操作(java实现)
- JAVA I/O操作
- java I/O操作
- Java文件操作I
- Java I/O操作
- Java I/O操作
- Java I/O操作
- KAFKA删除topic
- poj 1741 Tree 树的分治
- kernel panic - not syncing:Attempted to kill init
- zend-framwork 框架下的数据库认证(用户登录认证)
- 大神 PK 红米背后,2G 内存将成互联网手机分水岭
- Java数据结构---链表常用操作(I)
- poj 3281 Dining (最大流)
- 华为模拟题一:密码截取C++实现
- 通过socket读取异地文件
- Python编程基础之十五网络编程
- View中的scrollTo和scrollBy
- Android下开机启动后U盘经常不能自动挂载
- 照片上传回显基于spring mvc的 MultipartHttpServletRequest
- Python--ZOJ1350