数据结构 链表 Java实现
2018-02-01 19:19
363 查看
最近在复习数据结构,用正在学的java把链表部分实现了一遍,包括基本的插入,删除,遍历,查找等方法,带头结点 package com.oracle.list; public class MyList<E> { class Node {//结点内部类 private Object data; private Node next; public Node(Object data) { super(); this.data = data; } public Node() { super(); this.data=null; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } } private Node head;//定义一个头结点 private Node rear;//定义一个尾结点 private Node node;//临时结点 private int length;//长度 /** * 定义无参构造函数,初始化链表 */ public MyList() { head=new Node(); this.rear=this.head; this.length=0; } /** * 尾插法 */ public void add(Object data) { node=new Node(data); rear.next=node; rear=node; length++; } /** * 遍历输出链表 */ public void printList() { node =head; while(node.next!=null) { System.out.println(node.next.data); node=node.next; } } /** * 获取链表的长度 */ public int getSize() { return length; } /** * 在i位置之后插入元素o */ public void insert(int i,Object o) { if(i>=0&&i<length) { Node n=new Node(o); node =getNode(i); n.next=node.next; node.next=n; length++; }else { System.out.println("插入该位置失败,该链表位置范围为0-"+(length-1)); } } /** * 获取该位置的一个值 */ public Object get(int i) { return getNode(i).data; } /** * 获取该位置的结点,私有方法 */ private Node getNode (int i) { if(i==-1) { return head; }//如果是第一个 ,返回头结点 if(i>=0&&i<length) { node=head; int j=0; while(node!=null&&j!=i) { node=node.next; j++; } return node.next; }else { return null; } } /** * 删除该位置元素,并且返回该元素的值 */ public void delete(int i) { if(i>=0&&i<length) { node=getNode(i-1);//获取该位置前一个元素 node.next=node.next.next; length--; }else { System.out.println("位置错误噢"); } } /*设置某个位置的值 * */ public void set(int i,Object data) { node =getNode(i); node.data=data; } }
相关文章推荐
- 【Java数据结构】2.4单循环链表的实现
- JAVA 之 数据结构:实现单链表
- java数据结构之实现双向链表的示例
- 数据结构:线性表的链式存储(单向链表)--Java实现
- Java中链表、堆栈、队列、二叉树、散列表等数据结构的实现
- java与数据结构(3)---java实现循环链表
- 双向链表-数据结构-java实现
- 数据结构Java实现04----循环链表、仿真链表
- 数据结构Java实现 --单向链表的插入和删除
- 数据结构--java实现双向链表
- 数据结构Java实现 ----循环链表、仿真链表
- Java数据结构之简单链表的定义与实现方法示例
- 数据结构(三):链表的Java实现
- 数据结构学习----线性表的链式表示之升序排序的单链表(Java实现)
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- 数据结构Java实现04----循环链表、仿真链表
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- Java实现单链表数据结构
- 【Java数据结构】2.1单链表的实现
- 数据结构:二叉树的二叉链表存储--Java实现