집합 선형 표 -- List 의 LinkedList (대기 열 과 스 택)

4767 단어 LinkedList

대기 행렬 과 스 택 1. Queue
대기 열 (Queue) 은 자주 사용 하 는 데이터 구조 로 대기 열 을 특수 한 선형 표 로 볼 수 있 습 니 다. 대기 열 은 선형 표 에 대한 접근 방식 을 제한 합 니 다. 선형 표 의 한 끝 에 (offer) 요 소 를 추가 하고 다른 한 끝 에서 (poll) 요 소 를 꺼 낼 수 있 습 니 다.대기 열 은 선진 선 출 (FIFO First Input First Output) 의 원칙 을 따른다.JDK 에 서 는 Queue 인 터 페 이 스 를 제공 하 는 동시에 LinkedList 가 이 인 터 페 이 스 를 실현 시 켰 다.Queue 는 작업 대기 열 에 관 한 방법 을 제공 합 니 다. 그 주요 방법 은 다음 과 같 습 니 다. boolean offer (E): 요 소 를 대기 열 끝 에 추가 하고 추가 에 성공 하면 true 로 돌아 갑 니 다.E poll (): 이 요 소 를 삭제 하고 되 돌려 줍 니 다.E peek (): 팀 의 첫 번 째 요 소 를 되 돌려 주지 만 삭제 하지 않 습 니 다.
/**

 *     

 *                           

 *      

 *               

 * @author Administrator

 *

 */

class TestQueue{

    public static void main(String[] args) {

        //

        Queue<String> queue =new LinkedList<String>();

        

        //        

        queue.offer("a");

        queue.offer("b");

        queue.offer("c");

        

        System.out.println(queue);//[a, b, c]

        //      (      )

        String str =queue.peek();

        System.out.println("  :"+ str);

        System.out.println(queue);

        

        

    /*

     * int size

     *         

     * 

     */

        while (queue.size()>0){

            //             

            str =queue.poll();

            System.out.println(str);

        }

        System.out.println(queue);

    }

}

2. Deque
Deque 는 Queue 의 하위 인터페이스 로, 이른바 '양 끝 대기 열' 즉 대기 열의 양 끝 에서 각각 입 대 (offer) 와 출 대 (poll) 를 정의 하 며, LinkedList 는 이 인 터 페 이 스 를 구현 했다.Deque 를 한 끝 에서 만 입 대 · 출 대 할 수 있 는 것 으로 제한 하면 '스 택' (Stack) 의 데이터 구 조 를 실현 할 수 있 으 며 스 택 의 경우 스 택 에 들 어 가 는 것 을 push 라 고 부 르 고 스 택 을 나 가 는 것 을 pop 이 라 고 부른다.스 택 은 선진 후 출력 (FILO First Input Last Output) 의 원칙 을 따른다.Deque 는 스 택 을 조작 하 는 방법 을 제공 합 니 다. 그 주요 방법 은 다음 과 같 습 니 다. void push (E e): 주어진 요 소 를 스 택 에 눌 러 넣 습 니 다.저 장 된 요 소 는 스 택 에 있 습 니 다.즉, 스 택 의 첫 번 째 요소 E pop (): 스 택 의 첫 번 째 요 소 를 삭제 하고 되 돌려 줍 니 다.
/**

 *          ,             

 *               ,         

 * LinkedList     

 * @author Administrator

 *

 */

class TestStack{

    public static void main(String[] args) {

        Deque <String> stack =new LinkedList<String>();

        stack.push("a");

        stack.push("b");

        stack.push("c");

        System.out.println(stack);  //c, b, a]

        System.out.println("    :"+stack.peek());//                     :c

        

        while(stack.size()>0){

            System.out.println(stack.pop());

        }

        System.out.println(stack);

        

    }

}

좋은 웹페이지 즐겨찾기