자바로 큐 구현하기.

심심했다.

오랫만에 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

  • No Related Post

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.

2 Responses to “자바로 큐 구현하기.”

  1. Sumin B says:

    자바의 클래스 이름은 Camelcase 를 쓰는게 권장 사항입니다 ;-)

    http://en.wikipedia.org/w...se#Programming_and_coding

    • 정태영 says:

      사실 제가 주로 다루는 언어가 c이다 보니 coding convention 관련해서는 자바랑 좀 맞지 않는 부분이 굉장히 많을 것 같네요. ;)

Leave a Reply

믹시