Singly linked list algorithm implemented by Java
2014-11-17 09:03
309 查看
Jeff Lee blog: http://www.cnblogs.com/Alandre/ (泥沙砖瓦浆木匠),retain the url when reproduced ! Thanks
Linked list is a normal data structure.here I show how to implements it.
we will see:
Linked list is a normal data structure.here I show how to implements it.
Step 1. Define a structure
public class ListNode { public ListNode Next; public int Value; public ListNode(int NewValue) { Value = NewValue; } }
Step 2. implements the functions
public class Clist { private ListNode Head; private ListNode Tail; private ListNode Current; private int ListCountValue; public Clist() { ListCountValue = 0; Head = null; Tail = null; } public void Append(int DataValue) { ListNode NewNode = new ListNode(DataValue); if (ListCountValue == 0) { Head = NewNode; Tail = NewNode; } else { Tail.Next = NewNode; Tail = NewNode; } Current = NewNode; ListCountValue += 1; } public void Insert(int DataValue) { ListNode NewNode = new ListNode(DataValue); if (ListCountValue == 0) { Append(DataValue); return; } if(Current == Tail) { Tail.Next = NewNode; Tail = NewNode; Current = Tail; ListCountValue += 1; } if((Current != Head) && (Current != Tail)) { NewNode.Next = Current.Next; Current.Next = NewNode; Current = NewNode; ListCountValue += 1; } } public void Delete() { if(ListCountValue != 0) { if(Current == Head) { Head = Current.Next; Current = Head; ListCountValue -= 1; return; } else { Current = Current.Next; ListCountValue -= 1; } } } public void printAllListNode() { Current = Head; for (int i = 0; i < ListCountValue; i++) { System.out.println(Current.Value); Current = Current.Next; } } }
Step 3. Test class for testing
public class Test { public static void main(String[] args) { Clist clist = new Clist(); clist.Append(12); clist.Append(22); clist.Insert(66); clist.Insert(33); clist.Delete(); clist.printAllListNode(); } }
we will see:
12 22 66 33
相关文章推荐
- 【DataStructure&AlgorithmInJava】Ch05-LinkedListDemo1
- JavaShowAlgorithm-Binary Tree Convert double direction LinkedList
- FW:Reverse a Singly Linked List Recursively in Java
- Reverse singly linked list using Java
- Java 编程思想(第4版)学习笔记(LinkedList)
- Java 中Vector、ArrayList和LinkedList 的区别
- Java:基于LinkedList实现栈和队列
- list.c - A linked list by C --- C语言实现的单向链表
- Doubly linked list的java实现
- Java中HashMap,Hashtable和LinkedList
- java LinkedList
- Java Collections Framework - Java集合框架之List篇 ArrayList与LinkedList等的性能比较
- Java 容器中Vector、ArrayList和LinkedList 的区别
- 数据结构(LinkedList的java实现)
- 用java.util.*中的LinkedList实现stack
- Java 中Vector、ArrayList和LinkedList 的区别
- java中LinkedList 集合类实现栈和队列
- 如何反转一个单链表 How to reverse a singly linked list
- list.c - A linked list by C --- C语言实现的单向链表
- Java Collections Framework - Java集合框架之List篇 ArrayList与LinkedList等的性能比较