자바로 큐 구현하기.
심심했다.
오랫만에 C 가 아닌 다른 언어로 코드를 짜보고 싶어졌다.
만만한 자바가 눈에 보였다. -_-;
링크드 리스트 기반의 큐가 만만해보였다.
짰다.
우선 노드 정보를 저장할 클래스부터
queNode.java
public class queNode { private int var; private queNode next; public queNode(int var){ this.var = var; this.next = null; } public void setNext(queNode next){ this.next = next; } public queNode getNext(){ return next; } public int getVar(){ return var; } } |
그 담엔 진짜 큐 코드 및! 테스트용 main !!
public class que { private queNode head; private queNode last; public que(){ head = null; last = null; } public void add( int var ){ queNode tmp = new queNode(var); if( head == null ){ head = last = tmp; } else { last.setNext(tmp); last = tmp; } } public int get(){ int var; if( head == null ) return -1; var = head.getVar(); head = head.getNext(); return var; } public void status(){ int var; queNode tmp; System.out.print( "Status : [" ); for( tmp = head ; tmp != null ; tmp = tmp.getNext() ){ System.out.print( tmp.getVar() ); if( tmp.getNext() != null ) System.out.print( ", " ); } System.out.println( "]" ); System.out.println( "" ); } public static void main( String[] args ){ que q = new que(); que q2 = new que(); int var; System.out.println( "Add value 1" ); q.add(1); q.status(); System.out.println( "Now que2" ); q2.add(111); q2.status(); q2.add(222); q2.status(); System.out.println( "Add value 2" ); q.add(2); q.status(); System.out.println( "Add value 3" ); q.add(3); q.status(); System.out.println( "Add value 4" ); q.add(4); q.status(); System.out.println( "Add value 5" ); q.add(5); q.status(); System.out.println( "Add value 6" ); q.add(6); q.status(); var = q.get(); System.out.println( "Get Value " + var); q.status(); System.out.println( "Add value 7" ); q.add(7); q.status(); while( (var = q.get()) != -1 ){ System.out.println( "Get Value " + var); q.status(); } System.out.println( "Que is empty now" ); q.status(); System.out.println( "Add value 8" ); q.add(8); q.status(); while( (var = q.get()) != -1 ){ System.out.println( "Get Value " + var); q.status(); } } } |
끄적끄적;;
이 간단한 걸 예전엔 왜 그렇게 고생하면서 짰었을까 하는 생각이 들었다.
뻘 짓 로그…
Related Posts
This entry was posted by 정태영 on Sunday, January 3rd, 2010 at 2:10 AM and is taged under . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
자바의 클래스 이름은 Camelcase 를 쓰는게 권장 사항입니다 ;-)
http://en.wikipedia.org/w...se#Programming_and_coding
사실 제가 주로 다루는 언어가 c이다 보니 coding convention 관련해서는 자바랑 좀 맞지 않는 부분이 굉장히 많을 것 같네요. ;)