. (1) #INCLUDE <iostream> 2 은 USING 공간 STD] . 3 . 4 타입 정의 구조체 노드를 5. { 6. INT의 NUM] . 7 노드 * pNext] . 8 } 스택 큐] . 9 (10) // 연결리스트의 삽입 헤드 스택에 대응하는 스택 . 11 스택 * stack_push은 (**에 P to P 스택은 INT NUM) (12)는 { 13는 스택 * • pNode = (스택 *) malloc이 ( sizeof의 (스택)) 14 pNode-> NUM = NUM; 15 pNode-> pNext = NULL; 16 17 pNode-> = * pNext 에 P to P; 18 *에 P to P = pNode; 19 20 복귀 *의 에 P to P; 21 } 22 23 INT의 stack_pop (** 스택 에 P to P) 24 { 25 의 경우 ((*에 P to P) == NULL) 창 - 1 ; 26 27 스택 PPOP * = * 에 P to P; 28 INT NUM = pPop-> NUM; 29 30 *에 P to P = (*에 P to P) -> pNext; (31) 자유 (PPOP); 32 PPOP =NULL; 33이고 34은 리턴 ; NUM 35 } 36 37 [ 보이드 PrintStack (스택 * 에 P to P)가 38 인 { 39 COUT << " : 현재 스택 요소 " << pTop-> NUM은 << ENDL; 40 } 41는 42이다 // 큐 스택으로 43 인 * queue_push (스택 pTop1 ** ** pTop2 스택 큐 INT NUM) (44)가 { 45 // 첫 번째 요소는 전체 스택 위로 밀려 2 스택이 있는지. 1 결정 (46)는 IF ((* pTop2)! = NULL) 47 { 48 그동안 ((* pTop2)! =NULL) 49 { 50 stack_push (pTop1, stack_pop (pTop2)) (51)이다 } 52이다 } 53는 54이다 // 기존 요소 모두 스택되었거나 스택이 비어 1 55 // 직접 스택에 56 인 stack_push은 (pTop1, NUM) , (57)은 58 창 (큐 * ) pTop1 59 } 60 61는 INT의 queue_pop (pTop1 스택 ** ** 스택 pTop2)를 (62)가 { 63된다 //이 1 인 모든 스택 소자를 넣어에 요소가없는 경우 스택 결정은 (2) 상기 스택으로 푸시 팝 후 64 IF ((* pTop1)! = NULL) 65 { 66 그동안 ((* pTop1)! = NULL) 67 { 68 stack_push (pTop2가 stack_pop (pTop1)) (69) } (70) } (71) 인 72 반환 stack_pop (pTop2) (73)이다 } 74 75 INT 주 () 76 { 77 스택 * pTop1 = 이 NULL; // 으로 스택 (78) 스택 pTop2 * = NULL; // 스택 대 (79) / * stack_push (에 P to P ,. 1) 80 stack_push (에 P to P, 2) 81 stack_push (에 P to P ,. 3) 82 stack_push (에 P to P, 4); 3 ); 92 queue_push (pTop1, pTop2, 4 ); 93 (pTop1, queue_pop pTop2)를; 94 queue_pop (pTop1, pTop2); 95 (96) 시스템 ( " 정지 " ); 97 반환 0 ; 98 }