Java 链表结构
2009-03-18 16:46
393 查看
public class LinkList {
private LNode firstNode = new LNode();
//Insert the elem after the first node
public void insertElem(String name) {
LNode temp = null;
if(firstNode != null && firstNode.next == null) {
//if the lnode has a elem
LNode node = new LNode();
node.data = name;
firstNode.next = node;
} else {
//if the lnode has more than a elem
temp = firstNode.next;
LNode node = new LNode();
node.data = name;
firstNode.next = node;
firstNode.next.next = temp;
}
}
public void insertElem(String name, int index) {
LNode temp = firstNode;
int i = 1;
while(temp != null && i < index) {
temp = temp.next;
++i;
}
LNode node = new LNode();
node.data = name;
node.next = temp.next;
temp.next = node;
}
public LNode getElem(int index) {
LNode temp = firstNode;
int i = 1;
while(temp != null && i < index + 1) {
temp = temp.next;
++i;
}
return temp;
}
public void removeElem(int index) {
LNode temp = firstNode;
int i = 1;
while(temp != null && i < index) {
temp = temp.next;
++i;
}
temp.next = temp.next.next;
}
public void printAll() {
LNode temp = firstNode;
int i = 0;
while(temp != null && temp.next != null) {
if( i > 0)
System.out.println(i + " : " + temp.data);
temp = temp.next;
++i;
}
}
//Test
public static void main(String[] args) {
LinkList linkList = new LinkList();
linkList.insertElem("c");
linkList.insertElem("b");
linkList.insertElem("a");
linkList.insertElem("d", 1);
linkList.insertElem("e", 3);
//before removed
System.out.println("Before remove:");
linkList.printAll();
linkList.removeElem(2);
System.err.println("Remove 2 success!");
//after removed
System.out.println("After remove:");
linkList.printAll();
}
}
//Just like the C language's struct
class LNode {
public Object data;
public LNode next;
//use to initial the first node ,and do the malloc for the other node
public LNode() {
super();
this.data = "";
this.next = null;
}
}
private LNode firstNode = new LNode();
//Insert the elem after the first node
public void insertElem(String name) {
LNode temp = null;
if(firstNode != null && firstNode.next == null) {
//if the lnode has a elem
LNode node = new LNode();
node.data = name;
firstNode.next = node;
} else {
//if the lnode has more than a elem
temp = firstNode.next;
LNode node = new LNode();
node.data = name;
firstNode.next = node;
firstNode.next.next = temp;
}
}
public void insertElem(String name, int index) {
LNode temp = firstNode;
int i = 1;
while(temp != null && i < index) {
temp = temp.next;
++i;
}
LNode node = new LNode();
node.data = name;
node.next = temp.next;
temp.next = node;
}
public LNode getElem(int index) {
LNode temp = firstNode;
int i = 1;
while(temp != null && i < index + 1) {
temp = temp.next;
++i;
}
return temp;
}
public void removeElem(int index) {
LNode temp = firstNode;
int i = 1;
while(temp != null && i < index) {
temp = temp.next;
++i;
}
temp.next = temp.next.next;
}
public void printAll() {
LNode temp = firstNode;
int i = 0;
while(temp != null && temp.next != null) {
if( i > 0)
System.out.println(i + " : " + temp.data);
temp = temp.next;
++i;
}
}
//Test
public static void main(String[] args) {
LinkList linkList = new LinkList();
linkList.insertElem("c");
linkList.insertElem("b");
linkList.insertElem("a");
linkList.insertElem("d", 1);
linkList.insertElem("e", 3);
//before removed
System.out.println("Before remove:");
linkList.printAll();
linkList.removeElem(2);
System.err.println("Remove 2 success!");
//after removed
System.out.println("After remove:");
linkList.printAll();
}
}
//Just like the C language's struct
class LNode {
public Object data;
public LNode next;
//use to initial the first node ,and do the malloc for the other node
public LNode() {
super();
this.data = "";
this.next = null;
}
}
相关文章推荐
- Java程序设计之链表结构
- 判断一个链表是否为回文结构(java实现)
- Java数据结构之单向链表
- java 数据结构之删除链表中的元素实例代码
- 四种常见链表结构的Java实现
- 数据结构之链表的Java实现
- java实现简单的单链表结构
- Java数据结构与算法---链表的实现
- Java 数据结构之双端链表
- Java数据结构之单向链表,兼谈对象引用
- 数据结构——双端链表(java实现)
- 数据结构——用(单端)链表实现栈(java实现)
- Java实现链表结构
- Java HashMap中链表结构是如何产生的
- Java实现链表结构的具体代码
- (学习java)带有头结点的单链表结构
- Java数据结构与算法—及实现 线性表 顺序表、链表、栈、队列详解
- java实现链表结构
- 数据结构—Java版链表相交问题的终极解决方案
- Java数组和链表两种结构的操作效率,在哪些情况下,哪些操作的效率高