JAVA实现简单的双向LinkedList
来源:互联网 发布:橘子 芥川龙之介 知乎 编辑:程序博客网 时间:2024/05/29 17:20
本文为简单的实现双向LinkedList(链表),实现了一些基本的功能
public void add(Object obj)public Object get(int index)public void remove(int index)public void insert(int index,Object obj)public int size()
并没有进一步优化,能够运行,但是存在着一些漏洞。
代码放在下面
package top.justsa;public class TestLinkedList { private Node first; private Node last; private int size; public void add(Object obj){ if(first==null){ Node n=new Node(); n.setPrevious(null); n.setObj(obj); n.setNext(null); first=n; last=n; } else{ Node n=new Node(); n.setPrevious(last); n.setObj(obj); n.setNext(null); last.setNext(n); last=n; } size++; } public Object get(int index){ rangCheck(index); Node temp=node(index); if(temp!=null){ return temp.obj; } return null; } public Node node(int index){ rangCheck(index); Node temp=null; if(first!=null){ temp=first; for(int i=0;i<index;i++){ temp=temp.next; } }return temp; } public void remove(int index){ rangCheck(index); Node temp=node(index); if(temp!=null){ Node up=temp.previous; Node down=temp.next; up.next=down; down.previous=up; size--; } } public void insert(int index,Object obj){ rangCheck(index); Node temp=node(index); Node newNode=new Node(); newNode.obj=obj; if(temp!=null){ Node up=temp.previous; up.next=newNode; newNode.previous=up; newNode.next=temp; temp.previous=newNode; size++; } } public int size(){ return size; } private void rangCheck(int index){ if(index<0||index>=size){ try {throw new Exception();} catch (Exception e) {e.printStackTrace();} } } public static void main(String[] args) {TestLinkedList list=new TestLinkedList();list.add("aaa");list.add("bbb");list.add("ccc");list.insert(1,"aaaaBBB");list.remove(1);System.out.println(list.size());System.out.println(list.get(1));}}
package top.justsa;public class Node { Node previous; Object obj; Node next;public Object getObj() {return obj;}public void setObj(Object obj) {this.obj = obj;}public Node getNext() {return next;}public void setNext(Node next) {this.next = next;}public void setPrevious(Node previous) {this.previous = previous;}}
阅读全文
0 0
- JAVA实现简单的双向LinkedList
- [java数据结构]--java双向链表LinkedList的简单实现
- Java-----Collection 实现的LinkedList(双向链表)
- 自己实现Java中基于双向链表的LinkedList
- java双向链接表LinkedList的编写模拟实现
- 简单实现 linkedList 双向链表
- 简单实现LinkedList(双向链表)
- 数据结构: Java中LinkedList的简单实现
- 双向链表(LinkedList) java实现
- LinkedList,双向链表的实现
- java的双向链表简单实现
- 简单实现Java中的LinkedList
- java LinkedList 的实现
- Java实现一个简单的链表结构------LinkedList
- [Java] LinkedList 的简单使用方法
- 链表用java实现简单单链表linkedlist
- 数据结构(LinkedList的java实现)
- 数据结构--LinkedList的java实现
- Android TabLayout && 个性指示器
- oracle数据库字符编码utf-8改为ZHS16GBK
- Python实现基于BIC的语音对话分割(二)
- poj3349_Snowflake Snow Snowflakes
- 字符串循环右移
- JAVA实现简单的双向LinkedList
- Oracle 软件测试工程师日常工作中常用到的查询语句(除功能业务查询语句)
- 使用Java网络编程创建基于TCP协议的Server和Client
- Copying Books (二分)
- 心情
- Spring Cloud学习系列第二章:使用Feign调用服务
- 【算法系列】——Java实现插入&&希尔排序
- 如何在CSDN博客中的所贴的代码进行【代码块】显示
- 【POJ 3468 A Simple Problem with Integers】 线段树