【算法系列-3】链表
来源:互联网 发布:网络传输技术种类 编辑:程序博客网 时间:2024/06/06 19:55
双向链表
节点类:
public class DLinkNode {public int id;public String name;public DLinkNode next;public DLinkNode prev;public DLinkNode(int id, String name){this.id = id;this.name = name;}public void display(){System.out.println("id-->" + id + ", name-->" + name);}}
主类:
public class DLinkList {private DLinkNode first;private DLinkNode last;public boolean isEmpty(){if(null == first)return true;return false;}public void insertFirst(int id, String name){DLinkNode dLinkNode = new DLinkNode(id, name);if(isEmpty()){last = dLinkNode;}else{first.prev = dLinkNode;}dLinkNode.next = first;first = dLinkNode;}public void insertLast(int id, String name){DLinkNode dLinkNode = new DLinkNode(id, name);if(isEmpty()){first = dLinkNode;}else{last.next = dLinkNode;dLinkNode.prev = last;}last = dLinkNode;}public void delFirst(){if(isEmpty())return;if(first == last){first = null;last = null;}else{first = first.next;first.next.prev = null;}}public void delLast(){if(isEmpty())return;if(first == last){first = null;last = null;}else{last = last.prev;last.next = null;}}public boolean delete(int id){if(isEmpty()){System.out.println("DLinkNode is null!");return false;}DLinkNode current = first;while(null != current){if(current.id == id){if(first == last){first = null;last = null;}if(current == first){first = first.next;}else if(current == last){last = current.prev;current.prev.next = null;}else{current.prev.next = current.next;current.next.prev = current.prev;}return true;}current = current.next;}return false;}public void display(){DLinkNode current = first;if(isEmpty()){System.out.println("DLinkList is empty!!");return;}if(first == last){first.display();return;}while(null != current){current.display();current = current.next;}}public static void main(String[] args){DLinkList dl = new DLinkList();dl.insertFirst(1, "ZhangSan");dl.insertLast(2, "LiSi");dl.insertLast(3, "WangWu");//dl.delete(2);//dl.delFirst();dl.delLast();dl.display();}}
0 0
- 【算法系列-3】链表
- 算法系列3《SHA》
- 算法系列(3)leetcode27
- 算法系列
- 算法系列
- 算法系列---回溯算法
- 算法系列---回溯算法
- 算法系列---回溯算法
- 算法系列---回溯算法
- 算法系列---回溯算法
- Java数据结构和算法系列1--链表
- 算法细节系列(31):链表
- 泛型算法系列3:adjacent_find()
- 虚拟机学习系列 - 3 - 垃圾收集算法
- C++ STL算法系列3---求和:accumulate
- C++ STL算法系列3---求和:accumulate
- 数据结构和算法系列3 栈
- C++ STL算法系列3---求和:accumulate
- 佛珠详情页
- Node.JS之waterline 使用
- Android按键事件处理流程 -- KeyEvent
- 多维度一次统计各项数据总数
- jar\war\ear包
- 【算法系列-3】链表
- UVa 11235 Frequent values (RMQ)
- Linux进程间通信之——管道(整理)
- (Android)java虚拟机和Dalvik虚拟机的区别
- JNI日志调试LOG和中文乱码
- 文章标题
- [leetcode] 142. Linked List Cycle II
- 刚在一个论坛看到一篇文章,说的似乎很是高深,我也不太懂,于是转载了过来,大家一起看看
- 利用穷举法解决01背包问题