Aritalab:Lecture/Programming/Java/LinkedList
From Metabolomics.JP
< Aritalab:Lecture | Programming | Java(Difference between revisions)
m |
m |
||
| Line 1: | Line 1: | ||
二重リンクリスト | 二重リンクリスト | ||
| − | ;File | + | ;File LinkedList.java |
<pre> | <pre> | ||
class ListRep { // publicなclassではないのでList.java中に書ける。 | class ListRep { // publicなclassではないのでList.java中に書ける。 | ||
| Line 11: | Line 11: | ||
} | } | ||
| − | public class | + | public class LinkedList { |
ListRep head =null; | ListRep head =null; | ||
ListRep tail =null; | ListRep tail =null; | ||
int size =0; | int size =0; | ||
| − | + | LinkedList() {} //コンストラクタ | |
void push(Object o) | void push(Object o) | ||
| Line 36: | Line 36: | ||
} | } | ||
else | else | ||
| − | { System.err.println(" | + | { System.err.println("Error: empty list"); } |
| − | + | ||
| − | + | ||
} | } | ||
| Line 54: | Line 52: | ||
//サンプルプログラム | //サンプルプログラム | ||
static public void main(String[] args) | static public void main(String[] args) | ||
| − | { | + | { LinkedList L = new LinkedList(); |
for(int i=0; i < 10; i++) | for(int i=0; i < 10; i++) | ||
L.push(i); | L.push(i); | ||
Revision as of 19:04, 5 October 2010
二重リンクリスト
- File LinkedList.java
class ListRep { // publicなclassではないのでList.java中に書ける。
Object obj;
ListRep(Object o) { obj = o; } // コンストラクタ
ListRep prev;
ListRep next;
public Object inf() { return obj; }
}
public class LinkedList {
ListRep head =null;
ListRep tail =null;
int size =0;
LinkedList() {} //コンストラクタ
void push(Object o)
{ ListRep r = new ListRep(o);
if (size > 0) head.prev = r; else tail = r;
r.next = head;
head = r;
size++;
}
Object pop()
{ ListRep x = head;
if (x != null)
{ ListRep y = x.next;
head = y;
if (y != null) y.prev = null; else tail = null;
size--;
return x.inf();
}
else
{ System.err.println("Error: empty list"); }
}
void append(Object o)
{ ListRep r = new ListRep(o);
if (size > 0) tail.next = r; else head = r;
r.prev = tail;
tail = r;
size++;
}
int size() { return size; }
boolean empty() { return (size==0); }
//サンプルプログラム
static public void main(String[] args)
{ LinkedList L = new LinkedList();
for(int i=0; i < 10; i++)
L.push(i);
while (!L.empty())
System.out.println(L.pop());
}
}