逢三退一小程序源码 双向链表实现
来源:互联网 发布:做汉化的软件 编辑:程序博客网 时间:2024/06/06 09:08
package com.zx.juc;/** * Created by Administrator on 2017/5/7 0007. */public class ThreeToOne { public static void main(String[] args){ LinkNode linkNode=new LinkNode(); for(int i=0;i<6;i++){ Node node=new Node(i); linkNode.add(node); } int count=0; System.out.println(linkNode.getNode().getObj()); }}class Node{ private Node prev; private Node next; private Object obj; public Node(Object obj){ this.obj=obj; } public Node getPrev() { return prev; } public void setPrev(Node prev) { this.prev = prev; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; }}class LinkNode { private Node first; private Node last; public Node getFirst() { return first; } public void setFirst(Node first) { this.first = first; } public Node getLast() { return last; } public void setLast(Node last) { this.last = last; } public void add(Node node){ if(first==null){ first=last=node; } else { Node oldLast=last; last.setNext(node); node.setPrev(last); last=node; last.setNext(first); first.setPrev(last); } } public void del(Node node){ if(node==first){ Node newFirst=first.getNext(); newFirst.setPrev(last); last.setNext(newFirst); first=newFirst; } else if (node==last) { Node newLast=last.getPrev(); newLast.setNext(first); first.setPrev(newLast); last=newLast; } else { Node curr=first; while (curr!=node){ curr=curr.getNext(); if(curr==node) { Node prev=curr.getPrev(); Node next=curr.getNext(); prev.setNext(next); next.setPrev(prev); break; } } } } public Node getNode(){ int count=0; Node node=first; while (node!=null){ if(first==last){ break; } count++; if(count==3){ count=0; del(node); System.out.println("del-->"+node.getObj()); } node=node.getNext(); } return node; }}
0 0
- 逢三退一小程序源码 双向链表实现
- 双向链表的源码实现
- Java基于双向链表实现列表结构(算法源码)
- LinkedList源码分析:双向循环链表实现
- redis源码分析(四)-双向链表的实现
- 双向循环链表删除算法的C++程序实现
- 双向循环链表插入算法的C++程序实现
- 程序一:带头结点双向链表的简单实现
- 实现双向链表
- 双向链表实现
- 双向链表实现
- 双向链表实现
- 双向链表实现
- 双向链表实现
- 链表源码之双向链表
- 双向循环链表的操作源码
- AMPS:双向链表源码解读
- 【redis源码分析】双向链表---adlist
- 数据结构之二叉树的简单操作
- 计算机图形学里面的实时概念是什么?
- oj3128——递归之放苹果
- The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class
- 软件功能测试
- 逢三退一小程序源码 双向链表实现
- [Leetcode] #313 Super Ugly Number
- PyCharm更换sublime类似主题
- vtkRenderer类的理解以及对该类中函数的解析
- 【LeetCode35】【Search Insert Position】二分法查找
- 使用 EPUB 制作数字图书
- LINUX命令集合
- python-opencv学习笔记
- 为何计算机人应该懂一点编译知识?