ALG2012-A.ppt

Similar documents
untitled

ALG2012-C.ppt

アルゴリズムとデータ構造1

8 if switch for while do while 2

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

Microsoft Word - keisankigairon.ch doc

明解Javaによるアルゴリズムとデータ構造

ALG2012-F.ppt

明解Javaによるアルゴリズムとデータ構造

: : : TSTank 2

アルゴリズムとデータ構造1

K227 Java 2

アルゴリズムとデータ構造1

新・明解Javaで学ぶアルゴリズムとデータ構造

r1.dvi

I java A

text_08.dvi

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

新・明解Javaで学ぶアルゴリズムとデータ構造

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

10K pdf

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

新・明解Java入門

問題 01 以下は コンソールより年齢を入力させ その年齢にあった料金を表示するプログラムである 年齢ごとの金額は以下の通りである 年齢の範囲金額 0 歳以上 6 歳以下 120 円 7 歳以上 65 歳未満 200 円 65 歳以上無料 package j1.exam02; import java

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

2


(Eclipse\202\305\212w\202\324Java2\215\374.pdf)

ALG ppt

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

解きながら学ぶJava入門編

Vector Vector Vector Vector() Vector(int n) n Vector(int n,int delta) n delta

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

r02.dvi

Java演習(4) -- 変数と型 --

問題1 以下に示すプログラムは、次の処理をするプログラムである

Java講座

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

Javaによるアルゴリズムとデータ構造


目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

Java学習教材

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

2

Java updated

JavaプログラミングⅠ

r07.dvi

ohp07.dvi

JavaプログラミングⅠ

PowerPoint Presentation

プログラミング入門1

Java 3 p.2 3 Java : boolean Graphics draw3drect fill3drect C int C OK while (1) int boolean switch case C Calendar java.util.calendar A

JavaプログラミングⅠ

JavaプログラミングⅠ

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

明解Java入門編

2

Assignment_.java 課題 : 転置行列 / class Assignment_ public static void main(string[] args) int i,j; int[][] array = 1,,,,,,,,,,,,,1,1,; 行 列行列 i

オブジェクト指向プログラミング・同演習 5月21日演習課題

2.2 Java C main Java main 2 C 6 C Java 3 C Java ( ) G101Hello.java G101Hello main G101Hello.java /* G101Hello */ class G101Hello { /* main */ public s

cpp1.dvi

Java Java Java Java Java 4 p * *** ***** *** * Unix p a,b,c,d 100,200,250,500 a*b = a*b+c = a*b+c*d = (a+b)*(c+d) = 225

JAVA入門

Prog2_9th

Transcription:

21279 (sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/lecture/alg/212/index.html

(, )ε

m = n C2 = n ( n 1) / 2 m = n ( n 1)

1 11 11 111 11 111 111 1111 1 1 11 1 11 11 111 4-dimentional binary hyper cube

......

public class Node<E> { private E value; // private Collection<Node<E>> edges; // private boolean visited; private int sequence; private boolean searching; public Node(E value, Collection<Node<E>> edges) { this.value = value; this.edges = edges; reset(); public void reset(){ this.visited = false; this.sequence = ; this.edges.clear(); this.searching = false; public E getvalue() { // return value; public Collection<Node<E>> getedges(){ return this.edges; 4.34.4 public boolean isvisited() { return visited; public void setvisited(boolean v) { this.visited = v; public int getsequence() { return sequence; public void setsequence(int s) { this.sequence = s; public boolean issearching() { return searching; public void setsearching(boolean s) { this.searching = s; public void connect(node<e> to){ this.edges.add(to); // if(!to.getedges().contains(this) ){ to.getedges().add(this); public void connectto(node<e> to){ this.edges.add(to); // 8

private static Node<Character> nodea = new Node<Character>('A', new LinkedList<Node<Character>>()); private static Node<Character> nodeb = new Node<Character>('B', new LinkedList<Node<Character>>()); private static Node<Character> nodec = new Node<Character>('C', new LinkedList<Node<Character>>()); private static Node<Character> noded = new Node<Character>('D', new LinkedList<Node<Character>>()); private static Node<Character> nodee = new Node<Character>('E', new LinkedList<Node<Character>>()); private static Node<Character> nodef = new Node<Character>('F', new LinkedList<Node<Character>>()); private static Node<Character> nodeg = new Node<Character>('G', new LinkedList<Node<Character>>()); private static Collection<Node<Character>> test_data = new LinkedList<Node<Character>>(); static { test_data.add(nodea); test_data.add(nodeb); test_data.add(nodec); test_data.add(noded); test_data.add(nodee); test_data.add(nodef); test_data.add(nodeg); public class DepthFirstSearch { private static <E> void visit(node<e> node){ node.setvisited(true); System.out.print(node.getValue()); for(node<e> neighbor: node.getedges()){ if(neighbor.isvisited()) continue; // System.out.print(" -> "); visit(neighbor); public static <E> void search(collection<node<e>> graph){ for(node<e> node: graph){ if(node.isvisited()) continue; // System.out.println(node.getValue() + ""); visit(node); System.out.println(); 9

public static void main(string[] args) { System.out.println("4.3.2"); for(node<character> node: test_data){ node.reset(); nodea.connect(nodec); nodea.connect(noded); nodea.connect(nodeb); nodec.connect(nodee); nodec.connect(nodef); noded.connect(nodeb); noded.connect(nodef); nodee.connect(nodeg); nodee.connect(nodef); search(test_data); public static void main(string[] args) { System.out.println("4.3.3"); for(node<character> node: test_data){ node.reset(); nodea.connect(nodec); nodea.connect(noded); nodea.connect(nodeb); nodec.connect(nodef); nodec.connect(nodee); noded.connect(nodeb); noded.connect(nodef); nodee.connect(nodeg); nodee.connect(nodef); search(test_data); public static void main(string[] args) { System.out.println("4.3.4"); for(node<character> node: test_data){ node.reset(); nodea.connectto(nodec); nodea.connectto(noded); nodea.connectto(nodee); nodec.connectto(nodeb); nodeb.connectto(nodea); noded.connectto(nodec); noded.connectto(nodee); nodef.connectto(nodea); nodef.connectto(nodeg); search(test_data); 1

....

public class DirectedDepthFirstSearch<E> { private int sequence; private void visit(node<e> node){ node.setvisited(true); node.setsequence(++this.sequence); node.setsearching(true); System.out.print(node.getValue()); for(node<e> neighbor: node.getedges()){ if(neighbor.getsequence() == ){ System.out.print(" -> "); visit(neighbor); // else if (neighbor.getsequence() > node.getsequence()) { System.out.print(" (" + node.getvalue() + ", " + neighbor.getvalue() + ")"); else if (neighbor.issearching()){ System.out.print(" (" + node.getvalue() + ", " + neighbor.getvalue() + ")"); else { System.out.print(" (" + node.getvalue() + ", " + neighbor.getvalue() + ")"); node.setsearching(false); public void search(collection<node<e>> graph){ this.sequence = ; for(node<e> node: graph){ if(node.getsequence() == ){ System.out.println(node.getValue() + ""); visit(node); System.out.println(); 12

public static void main(string[] args) { System.out.println("4.3.4"); for(node<character> node: test_data){ node.reset(); nodea.connectto(nodec); nodea.connectto(noded); nodea.connectto(nodee); nodec.connectto(nodeb); nodeb.connectto(nodea); noded.connectto(nodec); noded.connectto(nodee); nodef.connectto(nodea); nodef.connectto(nodeg); new DirectedDepthFirstSearch<Character>().search(test_data); 13

4.3.6 2 2 5 4 3 5 2 2 5 4 3 5 5

....

public class BreadthFirstSearch { public static <E> void search(collection<node<e>> graph){ Queue<Node<E>> queue = new LinkedList<Node<E>>(); for(node<e> node: graph){ if(node.isvisited()){ continue; // queue.add(node); node.setvisited(true); while(!queue.isempty() ){ Node<E> next = queue.remove(); System.out.print("" + next.getvalue()); for(node<e> neighbor: next.getedges()){ if( neighbor.isvisited() ){ continue; // FIFO // enqueue // dequeue queue.add(neighbor); // enqueue neighbor.setvisited(true); System.out.print(" (" + next.getvalue() + ", " + neighbor.getvalue() + ")"); System.out.print(" -> "); System.out.println(); 16

public static void main(string[] args) { System.out.println("4.3.7"); for(node<character> node: test_data){ node.reset(); nodea.connect(nodec); nodea.connect(noded); nodea.connect(nodeb); nodec.connect(nodee); nodec.connect(nodef); noded.connect(nodeb); noded.connect(nodef); nodee.connect(nodeg); nodee.connect(nodef); search(test_data); 17

public class DepthFirstSearchStack { public static <E> void search(collection<node<e>> graph){ Stack<Node<E>> stack = new Stack<Node<E>>(); for(node<e> node: graph){ if(node.isvisited()){ continue; // stack.push(node); node.setvisited(true); while(!stack.empty() ){ Node<E> next = stack.pop(); System.out.print("" + next.getvalue()); for(node<e> neighbor: next.getedges()){ if( neighbor.isvisited() ){ continue; stack.add(neighbor); neighbor.setvisited(true); System.out.print(" -> "); System.out.println(); // LIFO // push // pop // push 18