Microsoft PowerPoint - ch07_스택 [호환 모드]

Size: px
Start display at page:

Download "Microsoft PowerPoint - ch07_스택 [호환 모드]"

Transcription

1 스택 (Stack) 자바로배우는쉬운자료구조

2 이장에서다룰내용 1 스택 2 스택의추상자료형 3 스택의구현 4 스택의응용 2

3 스택 (1) 스택 (stack) 접시를쌓듯이자료를차곡차곡쌓아올린형태의자료구조 스택에저장된원소는 top 으로정한곳에서만접근가능 top 의위치에서만원소를삽입하므로먼저삽입한원소는밑에쌓이고, 나중에삽입한원소는위에쌓인다. 마지막에삽입 (Last-In) 한원소는맨위에쌓여있다가가장먼저삭제 (First-Out) 된다. 후입선출구조 (LIFO, Last-In-First-Out) 3

4 스택 (2) 후입선출구조의예1 : 연탄아궁이 연탄을하나씩쌓으면서아궁이에넣으므로마지막에넣은 3번연탄이가장위에쌓여있다. 연탄을아궁이에서꺼낼때에는위에서부터하나씩꺼내야하므로마지막에넣은 3번연탄을가장먼저꺼내게된다. 4

5 스택 (3) 후입선출구조의예2 : 슈퍼맨의옷갈아입기 수퍼맨이옷을벗는순서 1 장화 2망토 3빨간팬츠 4파란옷 슈퍼맨이옷을입는순서 4 파란옷 3빨간팬츠 2망토 1장화 5

6 스택 (4) 스택의연산 스택에서의삽입연산 : push 스택에서의삭제연산 : pop 6

7 스택 (5) 스택에서의원소삽입 / 삭제과정 공백스택에원소 A, B, C를순서대로삽입하고한번삭제하는동안의스택변화 7

8 추상자료형스택 (1) 스택에대한추상자료형 ADT Stack [ADT 7-1] 데이터 : 0개이상의원소를가진유한순서리스트연산 : S Stack; item Element; createstack() ::= create an empty Stack; // 공백스택을생성하는연산 isempty(s) ::= if (S is empty) then return true else return false; // 스택 S가공백인지아닌지를확인하는연산 push(s, item) ::=insert item onto the top of S; // 스택 S의 top에 item( 원소 ) 을삽입하는연산 pop(s) ::= if (isempty(s)) then return error else { delete and return the top item of S }; // 스택 S의 top에있는item( 원소 ) 을스택에서삭제하고반환하는연산 delete(s) ::= if (isempty(s)) then return error else delete the top item;a // 스택 S의 top에있는item( 원소 ) 을삭제하는연산 peek(s) ::= if (isempty(s)) then return error else return (the top item of the S); // 스택 S의 top에있는item( 원소 ) 을반환하는연산 End Stack 8

9 추상자료형스택 (2) 스택의 push 알고리즘 1 top top+1; 스택 S에서 top이마지막자료를가리키고있으므로그위에자료를삽입하려면먼저 top의위치를하나증가 만약이때 top 의위치가스택의크기 (stack_size) 보다크다면오버플로우 (overflow) 상태가되므로삽입연산을수행하지못하고연산종료 2 S(top) x; 오버플로우상태가아니라면스택의 top이가리키는위치에 x 삽입 push(s, x) top top+1; // ❶ if (top > stack_size) then overflow; else S(top) x; // ❷ end push( ) [ 알고리즘 7-1] 9

10 추상자료형스택 (3) 스택의 pop 알고리즘 1 return S(top); 스택이공백스택이아니라면 top 이가리키는원소를먼저반환 2 top top-1; 스택의 top 원소를반환하였으므로 top 의위치는그아래의원소로변경하기위해 top 의위치를하나감소 pop(s) if (top = 0) then error; else { return S(top); // ❶ top top-1; // ❷ } end pop() [ 알고리즘 7-2] 10

11 스택의구현 (1) 순차자료구조를이용한스택의구현 순차자료구조인 1 차원배열을이용하여구현 스택의크기 : 배열의크기 스택에저장된원소의순서 : 배열원소의인덱스 인덱스 0 번 : 스택의첫번째원소 인덱스 n-1 번 : 스택의 n 번째원소 변수 top : 스택에저장된마지막원소에대한인덱스저장 공백상태 : top = -1 ( 초기값 ) 포화상태 : top = n-1 11

12 스택의구현 (2) 크기가 5 인 1 차원배열의스택에서 [ 그림 7-6] 의연산수행과정 12

13 스택의구현 (3) 순차자료구조방식을이용하여구현한스택프로그램 01 interface Stack{ 02 boolean isempty( ); 03 void push(char item); 04 char pop( ); 05 void delete( ); 06 char peek( ); 07 } class ArrayStack implements Stack{ 10 private int top; 11 private int stacksize; 12 private char itemarray[]; public ArrayStack(int stacksize){ 15 top = -1; 16 this.stacksize = stacksize; 17 itemarray = new char[this.stacksize]; 18 } [ 예제 7-1] 13

14 스택의구현 (4) 순차자료구조방식을이용하여구현한스택프로그램 19 [ 예제 7-1] 20 public boolean isempty(){ 21 return (top == -1); 22 } public boolean isfull(){ 25 return (top == this.stacksize-1); 26 } public void push(char item){ 29 if(isfull()){ 30 System.out.println("Inserting fail! Array Stack is full!!"); 31 } 32 else{ 33 itemarray[++top] = item; 34 System.out.println("Inserted Item : " + item); 35 } 36 } 14

15 스택의구현 (5) 순차자료구조방식을이용하여구현한스택프로그램 37 [ 예제 7-1] 38 public char pop(){ 39 if(isempty()) { 40 System.out.println("Deleting fail! Array Stack is empty!!"); 41 return 0; 42 } 43 else{ 44 return itemarray[top--]; 45 } 46 } public void delete(){ 49 if(isempty()){ 50 System.out.println("Deleting fail! Array Stack is empty!!"); 51 } 52 else { 53 top--; 54 } 55 } 15

16 스택의구현 (6) 순차자료구조방식을이용하여구현한스택프로그램 56 [ 예제 7-1] 57 public char peek(){ 58 if(isempty()){ 59 System.out.println("Peeking fail! Array Stack is empty!!"); 60 return 0; 61 } 62 else 63 return itemarray[top]; 64 } public void printstack(){ 67 if(isempty()) 68 System.out.printf("Array Stack is empty!! %n %n"); 69 else{ 70 System.out.printf("Array Stack>> "); 71 for(int i=0; i<=top; i++) 72 System.out.printf("%c ", itemarray[i]); 73 System.out.println(); System.out.println(); 74 } 16

17 스택의구현 (7) 순차자료구조방식을이용하여구현한스택프로그램 75 } 76 } class Ex7_1{ 79 public static void main(string args[]){ 80 int stacksize = 5; 81 char deleteditem; 82 ArrayStack S = new ArrayStack(stackSize); S.push('A'); 85 S.printStack( ); S.push('B'); 88 S.printStack(); S.push('C'); 91 S.printStack( ); [ 예제 7-1] 17

18 스택의구현 (8) 순차자료구조방식을이용하여구현한스택프로그램 92 [ 예제 7-1] 93 deleteditem = S.pop(); 94 if(deleteditem!= 0) 95 System.out.println("deleted Item : " + deleteditem); 96 S.printStack(); 97 } 98 } 18

19 스택의구현 (9) 순차자료구조로구현한스택의장점 순차자료구조인 1차원배열을사용하여쉽게구현 순차자료구조로구현한스택의단점 물리적으로크기가고정된배열을사용하므로스택의크기변경어려움 순차자료구조의단점을그대로가지고있다. 19

20 스택의구현 (10) 연결자료구조를이용한스택의구현 단순연결리스트를이용하여구현 스택의원소 : 단순연결리스트의노드 스택원소의순서 : 노드의링크포인터로연결 push : 리스트의마지막에노드삽입 pop : 리스트의마지막노드삭제 변수 top : 단순연결리스트의마지막노드를가리키는포인터변수 초기상태 : top = null 20

21 스택의구현 (11) 단순연결리스트의스택에서 [ 그림 6-6] 의연산수행과정 1 공백스택생성 :create(stack); 2 원소 A 삽입 :push(stack, A); 3 원소 B 삽입 :push(stack, B); 21

22 스택의구현 (12) 4 원소 C 삽입 :push(stack, C); 5 원소삭제 :pop(stack); 22

23 스택의구현 (13) 연결자료구조방식을이용하여구현한스택프로그램 01 interface Stack{ 02 boolean isempty(); 03 void push(char item); 04 char pop(); 05 void delete(); 06 char peek(); 07 } class StackNode{ 10 char data; 11 StackNode link; 12 } class LinkedStack implements Stack{ 15 private StackNode top; public boolean isempty(){ [ 예제 7-2] 23

24 스택의구현 (14) 연결자료구조방식을이용하여구현한스택프로그램 18 return (top == null); [ 예제 7-2] 19 } public void push(char item){ 22 StackNode newnode = new StackNode(); 23 newnode.data = item; 24 newnode.link = top; 25 top = newnode; 26 System.out.println("Inserted Item : " + item); 27 } public char pop(){ 30 if(isempty()) { 31 System.out.println("Deleting fail! Linked Stack is empty!!"); 32 return 0; 33 } 34 else{ 35 char item = top.data; 36 top = top.link; 24

25 스택의구현 (15) 연결자료구조방식을이용하여구현한스택프로그램 37 return item; [ 예제 7-2] 38 } 39 } public void delete(){ 42 if(isempty()){ 43 System.out.println("Deleting fail! Linked Stack is empty!!"); } 46 else { 47 top = top.link; 48 } 49 } public char peek(){ 51 if(isempty()){ 52 System.out.println("Peeking fail! Linked Stack is empty!!"); 25

26 스택의구현 (16) 연결자료구조방식을이용하여구현한스택프로그램 53 return 0; 54 } 55 else 56 return top.data; 57 } public void printstack(){ 60 if(isempty()) 61 System.out.printf("Linked Stack is empty!! %n %n"); 62 else{ 63 StackNode temp = top; 64 System.out.println("Linked Stack>> "); 65 while(temp!= null){ 66 System.out.printf("\t %c \n", temp.data); 67 temp = temp.link; 68 } 69 System.out.println(); 70 } [ 예제 7-2] 26

27 스택의구현 (17) 연결자료구조방식을이용하여구현한스택프로그램 71 } 72 } class Ex7_2{ 75 public static void main(string args[]){ 76 char deleteditem; 77 LinkedStack LS = new LinkedStack(); LS.push('A'); 80 LS.printStack(); LS.push('B'); 83 LS.printStack(); LS.push('C'); 86 LS.printStack(); 87 [ 예제 7-2] 27

28 스택의구현 (18) 연결자료구조방식을이용하여구현한스택프로그램 88 deleteditem = LS.pop(); [ 예제 7-2] 89 if(deleteditem!= 0) 90 System.out.println("deleted Item : " + deleteditem); 91 LS.printStack(); 92 } 93 } 28

29 스택의응용 (1) 역순문자열만들기 역순문자열만들기 스택의후입선출 (LIFO) 성질을이용 1 문자열을순서대로스택에 push 하기 29

30 스택의응용 (1) 역순문자열만들기 2 스택을 pop 하여문자열로저장하기 30

31 스택의응용 (2) 시스템스택 시스템스택 프로그램에서의호출과복귀에따른수행순서를관리 가장마지막에호출된함수가가장먼저실행을완료하고복귀하는후입선출구조이므로, 후입선출구조의스택을이용하여수행순서관리 함수호출이발생하면호출한함수수행에필요한지역변수, 매개변수및수행후복귀할주소등의정보를스택프레임 (stack frame) 에저장하여시스템스택에삽입 함수의실행이끝나면시스템스택의 top 원소 ( 스택프레임 ) 를삭제 (pop) 하면서프레임에저장되어있던복귀주소를확인하고복귀 함수호출과복귀에따라이과정을반복하여전체프로그램수행이종료되면시스템스택은공백스택이된다. 31

32 스택의응용 (2) 시스템스택 함수호출과복귀에따른전체프로그램의수행순서 32

33 스택의응용 (2) 시스템스택 1 프로그램이실행을시작하여 main() 함수가실행되면서 main() 함수에관련된정보를스택프레임에저장하여시스템스택에삽입 2 main() 함수실행중에 F_1() 함수호출을만나면함수호출과복귀에필요한정보를스택프레임에저장하여시스템스택에삽입하고, 호출된함수인 F_1() 함수로이동 이때스택프레임에는호출된함수의수행이끝나고 main() 함수로복귀할주소 a 를저장 33

34 스택의응용 (2) 시스템스택 3 호출된함수 F_1() 함수를실행 4 F_1() 함수실행중에 F_2() 함수호출을만나면다시함수호출과복귀에필요한정보를스택프레임에저장하여시스템스택에삽입. 호출된함수인 F_2() 함수를실행 스택프레임에는 F_1() 함수로복귀할주소 b 를저장 5 호출된함수 F_2() 함수를실행완료 6 시스템스택의 top 에있는스택프레임을 pop 하여정보를확인하고, F_1() 함수의 b 주소로복귀 34

35 스택의응용 (2) 시스템스택 7 복귀된함수 F_1() 함수의 b 주소이후부분을실행 8 시스템스택의 top 에있는스택프레임을 pop 하여정보를확인하고 main() 함수의 a 주소로복귀 9 복귀된 main() 함수의 a 주소이후부분에대한실행이완료되면시스템스택의 top 에있는스택프레임을 pop 하는데, 시스템스택이공백이되었으므로전체프로그램실행종료 35

36 스택의응용 (3) 수식의괄호검사 수식의괄호검사 수식에포함되어있는괄호는가장마지막에열린괄호를가장먼저닫아주어야하는후입선출구조로구성되어있으므로, 후입선출구조의스택을이용하여괄호를검사한다. 수식을왼쪽에서오른쪽으로하나씩읽으면서괄호검사 왼쪽괄호를만나면스택에 push 오른쪽괄호를만나면스택을 pop하여마지막에저장한괄호와같은종류인지를확인 같은종류의괄호가아닌경우괄호의짝이잘못사용된수식! 수식에대한검사가모두끝났을때스택은공백스택 수식이끝났어도스택이공백이되지않으면괄호의개수가틀린수식! 36

37 스택의응용 (3) 수식의괄호검사 수식의괄호검사알고리즘 testpair( ) exp Expression; Stack null; while (true) do { symbol getsymbol(exp); case { symbol = "(" or "[" or "{" : push(stack, symbol); symbol = ")" : open_pair pop(stack); if (open_pair "(") then return false; symbol = "]" : open_pair pop(stack); if (open_pair "[") then return false; symbol = "}" : open_pair pop(stack); if (open_pair "{") then return false; [ 알고리즘 7-3] 37

38 스택의응용 (3) 수식의괄호검사 수식의괄호검사알고리즘 symbol = null : if (isempty(stack)) then return true; else return false; else : } } end testpair( ) [ 알고리즘 7-3] 38

39 스택의응용 (3) 수식의괄호검사 수식의괄호검사예 검사할수식 : {(A+B)-3}*5+[{cos(x+y)+7}-1]*4 >> 계속 39

40 스택의응용 (3) 수식의괄호검사 >> 계속 40

41 스택의응용 (3) 수식의괄호검사 41

42 스택의응용 (3) 수식의괄호검사 42

43 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 001 interface Stack{ 002 boolean isempty( ); 003 void push(char item); 004 char pop( ); 005 void delete( ); 006 char peek( ); 007 } class StackNode{ 010 char data; 011 StackNode link; 012 } class LinkedStack implements Stack{ 015 private StackNode top; public boolean isempty(){ 018 return (top == null); 019 } [ 예제 7-3] 43

44 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 020 [ 예제 7-3] 021 public void push(char item){ 022 StackNode newnode = new StackNode(); 023 newnode.data = item; 024 newnode.link = top; 025 top = newnode; 026 // System.out.println("Inserted Item : " + item); 027 } public char pop(){ 030 if(isempty()) { 031 System.out.println("Deleting fail! Linked Stack is empty!!"); 032 return 0; 033 } 034 else{ 035 char item = top.data; 036 top = top.link; 037 return item; 038 } 44

45 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 039 } [ 예제 7-3] public void delete(){ 042 if(isempty()){ 043 System.out.println("Deleting fail! Linked Stack is empty!!"); } 046 else { 047 top = top.link; 048 } 049 } public char peek(){ 052 if(isempty()){ 053 System.out.println("Peeking fail! Linked Stack is empty!!"); 054 return 0; 055 } 056 else 057 return top.data; 45

46 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 058 } [ 예제 7-3] public void printstack(){ 061 if(isempty()) 062 System.out.printf("Linked Stack is empty!! %n %n"); 063 else{ 064 StackNode temp = top; 065 System.out.println("Linked Stack>> "); 066 while(temp!= null){ 067 System.out.printf("\t %c \n", temp.data); 068 temp = temp.link; 069 } 070 System.out.println(); 071 } 072 } 073 }

47 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 075 class OptExp{ 076 private String exp; 077 private int expsize; 078 private char testch, openpair; public boolean testpair(string exp){ 081 this.exp = exp; 082 LinkedStack S = new LinkedStack(); 083 expsize = this.exp.length(); 084 for(int i=0; i<expsize; i++){ 085 testch = this.exp.charat(i); 086 switch(testch){ 087 case '(' : 088 case '{' : 089 case '[' : 090 S.push(testCh); break; 091 case ')' : 092 case '}' : [ 예제 7-3] 47

48 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 093 case ']' : 094 if(s.isempty()) return false; 095 else{ 096 openpair = S.pop(); 097 if((openpair == '(' && testch!= ')') 098 (openpair == '{' && testch!= '}') 099 (openpair == '[' && testch!= ']')) 100 return false; 101 else break; 102 } 103 } 104 } 105 if (S.isEmpty()) return true; 106 else return false; 107 } public char[] topostfix(string infix){ 110 char testch; [ 예제 7-3] 48

49 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 111 exp = infix; 112 int expsize = 10; 113 int j=0; 114 char postfix[] = new char[expsize]; 115 LinkedStack S = new LinkedStack(); for(int i=0; i<=expsize; i++){ 118 testch = this.exp.charat(i); 119 switch(testch){ 120 case '0': 121 case '1': 122 case '2': 123 case '3': 124 case '4': 125 case '5': 126 case '6': 127 case '7': 128 case '8': [ 예제 7-3] 49

50 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 129 case '9': 130 postfix[j++] = testch; break; case '+' : 133 case '-' : 134 case '*' : 135 case '/' : 136 S.push(testCh); break; case ')' : postfix[j++] =S.pop(); break; default: 142 } 143 } 144 postfix[j] = S.pop(); 145 return postfix; 146 } 147 } [ 예제 7-3] 50

51 스택의응용 (3) 수식의괄호검사 연결자료구조방식을이용하여구현한스택프로그램 class Ex7_3{ 150 public static void main(string args[]){ 151 OptExp opt = new OptExp(); 152 String exp = "(3*5)-(6/2)"; 153 char postfix[]; 154 int value; 155 System.out.println(exp); 156 if(opt.testpair(exp)) 157 System.out.println(" 괄호맞음!"); 158 else 159 System.out.println(" 괄호틀림!!!"); System.out.printf("\n후위표기식 : "); 162 postfix = opt.topostfix(exp); 163 System.out.println(postfix); 164 } 165 } [ 예제 7-3] 51

52 스택의응용 (3) 수식의괄호검사 실행결과 52

53 스택의응용 (4) 수식변환 수식의표기법 전위표기법 (prefix notation) 연산자를앞에표기하고그뒤에피연산자를표기하는방법 예 ) +AB 중위표기법 (infix notation) 연산자를피연산자의가운데표기하는방법 예 ) A+B 후위표기법 (postfix notation) 연산자를피연산자뒤에표기하는방법 예 ) AB+ 53

54 스택의응용 (4) 수식변환 중위표기식의전위표기식변환방법 1 수식의각연산자에대해서우선순위에따라괄호를사용하여다시표현한다. 2 각연산자를그에대응하는왼쪽괄호의앞으로이동시킨다. 3 괄호를제거한다. 예 ) A*B-C/D 1단계 : ( (A*B) - (C/D) ) 2 단계 : -(*(A B) /(C D)) 3 단계 : -*AB/CD 54

55 스택의응용 (4) 수식변환 중위표기식의후위표기식변환방법 1 수식의각연산자에대해서우선순위에따라괄호를사용하여다시표현한다. 2 각연산자를그에대응하는오른쪽괄호의뒤로이동시킨다. 3 괄호를제거한다. 예 ) A*B-C/D 1단계 : ( (A*B) - (C/D) ) 2 단계 : ( (A B)* (C D)/ )- 3 단계 : AB*CD/- 55

56 스택의응용 (4) 수식변환 스택을사용하여입력된중위표기식을후위표기식으로변환 변환방법 1 왼쪽괄호를만나면무시하고다음문자를읽는다. 2 피연산자를만나면출력한다. 3연산자를만나면스택에 push한다. 4 오른쪽괄호를만나면스택을 pop하여출력한다. 5 수식이끝나면, 스택이공백이될때까지 pop하여출력한다. 56

57 스택의응용 (4) 수식변환 예 ) ((A*B)-(C/D)) 57

58 스택의응용 (4) 수식변환 예 ) ((A*B)-(C/D)) 58

59 스택의응용 (4) 수식변환 예 ) ((A*B)-(C/D)) 59

60 스택의응용 (4) 수식변환 예 ) ((A*B)-(C/D)) 60

61 예 ) (a+b)*c ( a + b ) * c ( 61

62 예 ) (a+b)*c ( a + b ) * c ( 62

63 예 ) (a+b)*c ( a + b ) * c a ( 63

64 예 ) (a+b)*c ( a + b ) * c + a ( 64

65 예 ) (a+b)*c ( a + b ) * c + a b ( 65

66 예 ) (a+b)*c ( a + b ) * c a b + 66

67 예 ) (a+b)*c ( a + b ) * c a b + * 67

68 예 ) (a+b)*c ( a + b ) * c a b + c * 68

69 예 ) (a+b)*c ( a + b ) * c a b + c * 69

70 스택의응용 (4) 수식변환 중위표기법에대한후위표기법변환알고리즘 infix_to_postfix(exp) while(true) do { symbol getsymbol(exp); case { symbol = operand : // 피연산자처리 print(symbol); symbol = operator : // 연산자처리 push(stack, symbol); symbol = ")" : // 오른쪽괄호처리 print(pop(stack)); symbol = null : // 중위수식의끝 while(top > -1) do print(pop(stack)); else : } } end infix_to_postfix( ) [ 알고리즘 7-4] 70

71 스택의응용 (5) 후위표기식연산 스택을사용하여후위표기식을연산 연산방법 1 피연산자를만나면스택에 push 한다. 2연산자를만나면필요한만큼의피연산자를스택에서 pop하여연산하고, 연산결과를다시스택에 push 한다. 3 수식이끝나면, 마지막으로스택을 pop하여출력한다. 수식이끝나고스택에마지막으로남아있는원소는전체수식의연산결과값이된다. 71

72 스택의응용 (5) 후위표기식연산 8 2 / / / 피연산자 -> 삽입피연산자 -> 삽입연산자 -> 8/2=4 삽입 8 2 / / / 피연산자 -> 삽입연산자 -> 4-1=1 삽입종료 -> 전체연산결과 =1 72

73 스택의응용 (5) 후위표기식연산 후위표기수식의연산알고리즘 evalpostfix(exp) while (true) do { symbol getsymbol(exp); case { symbol = operand : // 피연산자처리 push(stack, symbol); symbol = operator : // 연산자처리 opr2 pop(stack); opr1 pop(stack); result opr1 op(symbol) opr2; // 스택에서꺼낸피연산자들을연산자로연산 push(stack, result); symbol = null : // 후위수식의끝 print(pop(stack)); } } end evalpostfix() [ 알고리즘 7-5] 73

74 스택의응용 (5) 후위표기식연산 예 ) AB*CD/- 74

75 스택의응용 (5) 후위표기식연산 예 ) AB*CD/- 75

76 스택의응용 (5) 후위표기식연산 예 ) AB*CD/- 76

77 스택의응용 (5) 후위표기식연산 후위표기수식의연산프로그램 01 class StackNode{ 02 int data; 03 StackNode link; 04 } class LinkedStack{ 07 private StackNode top; public boolean isempty(){ 10 return (top == null); 11 } public void push(int item){ 14 StackNode newnode = new StackNode(); 15 newnode.data = item; 16 newnode.link = top; 17 top = newnode; 18 } 19 [ 예제 7-4] 77

78 스택의응용 (5) 후위표기식연산 후위표기수식의연산프로그램 20 public int pop(){ [ 예제 7-4] 21 if(isempty()) { 22 System.out.println("Deleting fail! Linked Stack is empty!!"); 23 return 0; 24 } 25 else{ 26 int item = top.data; 27 top = top.link; 28 return item; 29 } 30 } 31 } class OptExp2{ 34 private String exp; public int evalpostfix(string postfix){ 37 LinkedStack S = new LinkedStack(); 38 exp = postfix; 78

79 스택의응용 (5) 후위표기식연산 후위표기수식의연산프로그램 39 int opr1, opr2, value; [ 예제 7-4] 40 char testch; 41 for(int i=0; i<7; i++){ 42 testch = exp.charat(i); 43 if(testch!= '+' && testch!= '-' && testch!='*' && testch!= '/'){ 44 value = testch - '0';45 S.push(value); 46 } 47 else{ 48 opr2 = S.pop(); 49 opr1 = S.pop(); 50 switch(testch){ 51 case '+' : S.push(opr1 + opr2); break; 52 case '-' : S.push(opr1 - opr2); break; 53 case '*' : S.push(opr1 * opr2); break; 54 case '/' : S.push(opr1 / opr2); break; 55 } 56 } 57 } 58 return S.pop(); 79

80 스택의응용 (5) 후위표기식연산 후위표기수식의연산프로그램 59 } 60 } class Ex7_4{ 63 public static void main(string args[]){ 64 OptExp2 opt = new OptExp2(); 65 int result; 66 String exp = "35*62/-"; 67 System.out.printf("\n후위표기식 : %s", exp); 68 result = opt.evalpostfix(exp); 69 System.out.printf("\n 연산결과 = %d \n", result); 70 } 71 } [ 예제 7-4] 80

81 스택의응용 (6) 미로탐색 체계적인방법필요 현재의위치에서가능한방향을스택에저장해놓았다가막다른길을만나면스택에서다음탐색위치를꺼낸다 입구 출구 m x

82 스택의응용 (6) 미로탐색 82

83 스택의응용 (6) 미로탐색 미로탐색알고리즘 스택 s과출구의위치 x, 현재생쥐의위치를초기화 while( 현재의위치가출구가아니면 ) do 현재위치를방문한것으로표기 if( 현재위치의위, 아래, 왼쪽, 오른쪽위치가아직방문되지않았고갈수있으면 ) then 그위치들을스택에 push if( is_empty(s) ) then 실패 else 스택에서하나의위치를꺼내어현재위치로만든다 ; 성공 ; 83

84 자바로배우는쉬운자료구조 7 장끝

슬라이드 1

슬라이드 1 CHAP 5 : 스택 yicho@gachon.ac.kr 1 5.1 스택추상데이터타입 스택 (stack) 이란?: 쌓아놓은더미 2 스택의특징 후입선출 (LIFO:Last-In First-Out): 가장최근에들어온데이터가가장먼저나감. D C B C B C B C B A A A A 3 스택의구조 요소 (element) 스택에저장되는것 C 스택상단 (top) : 스택에서입출력이이루어지는부분

More information

Microsoft PowerPoint - 07-chap05-Stack.ppt

Microsoft PowerPoint - 07-chap05-Stack.ppt / 스택이란? 스택 stack): 쌓아놓은더미 hapter 5 스택 Dongwon Jeong djeong@kunsan.ac.kr Department of Informatics & Statistics 학습목표 스택의개념이해 스택의동작원리이해 배열과연결리스트를이용한스택구현 스택응용프로그램 스택의특징 후입선출 LIFO:Last-In First-Out) 가장최근에들어온데이터가가장먼저나감.

More information

5.스택(강의자료).key

5.스택(강의자료).key CHP 5: https://www.youtube.com/watch?v=ns-r91557ds ? (stack): (LIFO:Last-In First-Out):. D C B C B C B C B (element) C (top) B (bottom) (DT) : n element : create() ::=. is_empty(s) ::=. is_full(s) ::=.

More information

4장

4장 CHAP 5: 스택 스택이란? 스택 (stack): 쌓아놓은더미 스택의특징 후입선출 (LIFO:Last-In First-Out): 가장최근에들어온데이터가가장먼저나감. D C B C B C B C B A A A A 스택의구조 요소 (element) C 스택상단 (top) B A 스택하단 (bottom) 스택추상데이터타입 (ADT) 객체 : n개의 element형의요소들의선형리스트

More information

Microsoft PowerPoint - ch08_큐 [호환 모드]

Microsoft PowerPoint - ch08_큐 [호환 모드] 큐 (Queue) 자바로배우는쉬운자료구조 이장에서다룰내용 1 큐 2 큐의구현 3 큐의응용 2 큐 (1) 큐 (Queue) 스택과마찬가지로삽입과삭제의위치가제한된유한순서리스트 큐의뒤에서는삽입만하고, 앞에서는삭제만할수있는구조 삽입한순서대로원소가나열되어가장먼저삽입 (First-In) 한원소는맨앞에있다가가장먼저삭제 (First-Out) 된다. 선입선출구조 (FIFO,

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

More information

o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 -

o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 - 스택 (stack) SANGJI University Kwangman Ko o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 - o 스택의특징 ~ 모든원소의삽입과삭제가 top 이라는자료구조의한쪽끝에서만수행되는제한된리스트구조 ~ 후입선출 (Last-In-First-Out, LIFO) 방식 가장마지막에입력된자료가가장먼저출력 o 스택의동작 ~ top 에서만삽입

More information

03장.스택

03장.스택 ---------------- DT STRUCTURES USING C ---------------- CHPTER 스택 1/30 스택이란? 스택 (stack): 쌓아놓은더미 후입선출 (LIFO:Last-In First-Out) 가장최근에들어온데이터가가장먼저나감 2/30 스택의구조 스택상단 : top 스택하단 : 불필요 요소, 항목 공백상태, 포화상태 삽입, 삭제연산

More information

06장.리스트

06장.리스트 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 리스트 1/28 리스트란? 리스트 (list), 선형리스트 (linear list) 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : ( ㄱ, ㄴ,, ㅎ ) 카드 :

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74

Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74 큐 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74 1. 큐 v 큐 (Queue) 데이터의삽입과삭제가양쪽끝에서일어나는자료구조

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

Algorithms

Algorithms 자료구조 & 알고리즘 스택과큐 (Stack and Queue) Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 스택의개념및구현 큐의개념및구현 2 스택 스택의개념및구현 스택의구현 스택의응용 큐의개념및구현 3 스택 (Stack) 스택의구조 후입선출 (LIFO, Last-In-First-Out) 삽입 PUSH

More information

Chapter 06. 스택(Stack)

Chapter 06. 스택(Stack) 윤성우의열혈자료구조 : C 언어를이용한자료구조학습서 Chapter 06. 스택 (Stack) Introduction To Data Structures Using C Chapter 06. 스택 (Stack) Chapter 06-1: 스택의이해와 ADT 정의 2 스택 (Stack) 의이해 스택은 먼저들어간것이나중에나오는자료구조 로서 초코볼이담겨있는통에비유할수있다.

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

Microsoft PowerPoint - 제5장-스택의응용.pptx

Microsoft PowerPoint - 제5장-스택의응용.pptx 제 5 강의. 스택과큐의응용 학습목차 1. 후위표기법 2. 스택을이용한후위표기법변환 3. 스택을이용한후위표기법의계산 1 1. 후위표기법 ( 정의 ) 후위표기법 (postfix notation) : 후위표기법은연산자를피연산자의뒤에놓는방법이다. 스택의응용의예이며수식의계산은계산기에서나컴퓨터프로그래밍을할때자주나타난다. x = a/b-c+d*e-a*c 다음의수식을사람이계산한다고할때계산하는과정을살펴보자.

More information

Algorithms

Algorithms 자료구조 & 알고리즘 리스트 (List) Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 선형리스트 연결리스트 2 선형리스트 선형리스트 선형리스트의개념 선형리스트의구현 연결리스트 3 선형리스트개념 리스트 (List) 목록, 대부분의목록은도표 (Table) 형태로표시 추상자료형리스트는이러한목록또는도표를추상화한것

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

03_queue

03_queue Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,

More information

chap01_time_complexity.key

chap01_time_complexity.key 1 : (resource),,, 2 (time complexity),,, (worst-case analysis) (average-case analysis) 3 (Asymptotic) n growth rate Θ-, Ο- ( ) 4 : n data, n/2. int sample( int data[], int n ) { int k = n/2 ; return data[k]

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

Chapter 4. LISTS

Chapter 4. LISTS 연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는

More information

슬라이드 1

슬라이드 1 6-1 리스트 (list) 란순서를가진항목들을표현하는자료구조 리스트를구현하는두가지방법 배열 (array) 을이용하는방법 구현간단 삽입, 삭제시오버헤드 항목의개수제한 연결리스트 (linked list) 를이용하는방법 구현복잡 삽입, 삭제가효율적 크기가제한되지않음 6-2 객체 : n 개의 element 형으로구성된순서있는모임 연산 : add_last(list,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

q 이장에서다룰내용 1 연결자료구조방식 2 단순연결리스트 3 원형연결리스트 4 이중연결리스트 3 다항식의연결자료구조표현 2

q 이장에서다룰내용 1 연결자료구조방식 2 단순연결리스트 3 원형연결리스트 4 이중연결리스트 3 다항식의연결자료구조표현 2 연결자료구조표현방식 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 연결자료구조방식 2 단순연결리스트 3 원형연결리스트 4 이중연결리스트 3 다항식의연결자료구조표현 2 q 연결자료구조 v 순차자료구조의문제점 삽입연산이나삭제연산후에연속적인물리주소를유지하기위해서원소들을이동시키는추가적인작업과시간소요 Ø 원소들의이동작업으로인한오버헤드는원소의개수가많고삽입

More information

Microsoft PowerPoint - 제4장-스택과큐.pptx

Microsoft PowerPoint - 제4장-스택과큐.pptx 제 4 강의. 스택과큐자료구조 1 제 4 강. 스택과큐자료구조 학습목차 1. 스택과큐자료구조 2. 스택자료구조 3. 큐자료구조 4. 원형큐의구현 2 1. 스택 (Stack) 과큐자료구조 리스트, 스택과큐 (Stack and Queue) 스택과큐는리스트자료구조의특별한경우이다. 리스트 - 순서가있다 - 읽기, 삽입 (insert) 과삭제 (delete) 를리스트의어느곳에서나행함

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E >

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E > 제 7 강의. 고급연결리스트 1. 원형연결리스트 2. 이중연결리스트 3. 연결리스트알고리즘 1 1. 원형연결리스트 (Circularly Linked Lists) 원형연결리스트란? 연결리스트의맨끝노드를첫번째노드와연결시켜서원형으로만든리스트 단순연결리스트 (Singly Linked List) 불편한점 - 연결리스트의노드포인터를알고있을때첫번째노드는바로찾아갈수있지만마지막노드는리스트전체를따라가면서끝을찾아가야한다

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ 00. 리스트 자료구조 01. 링크드 리스트 02. 더블 링크드 리스트 03. 환형 링크드 리스트 리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : (

More information

1장. 리스트

1장. 리스트 01. 링크드리스트 02. 더블링크드리스트 03. 환형링크드리스트 배열과는달리유연하게크기를바꿀수있는자료구조 각노드는다음노드를가리키는포인터를가짐. 각노드를다음노드를가리키는포인터로연결하여만든리스트. Single Linked List 라고도함. 링크드리스트의첫번째노드를헤드 (Head), 마지막노드를테일 (Tail) 이라고한다. C 언어로표현하는링크드리스트의노드 typedef

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

<4D F736F F F696E74202D20C0DAB7E1B1B8C1B65FC3E2BCAEBCF6BEF7>

<4D F736F F F696E74202D20C0DAB7E1B1B8C1B65FC3E2BCAEBCF6BEF7> 한국방송통신대학교컴퓨터과학과 2 학년자료구조 제 1 장기본개념 자료와정보 3 알고리즘 4 자료 data : 현실세계에서관찰이나측정을통해수집된값 value 이나사실 fact 특정한일을수행하는명령어들의유한집합 정보 information : 자료를처리 / 추출 process 해서얻어진유용한결과 입 출 력 : 외부에서제공되는자료가있을수있다력 : 적어도한가지결과를생성한다

More information

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를 리스트에대한설명중틀린것은 구조체도리스트의요소가될수있다 리스트의요소간에는순서가있다 리스트는여러가지방법으로구현될수있다 리스트는집합과동일하다 다음은순차적표현과연결된표현을비교한것이다 설명이틀린것은 연결된표현은포인터를가지고있어상대적으로크기가작아진다 연결된표현은삽입이용이하다 순차적표현은연결된표현보다액세스시간이많이걸린다 연결된표현으로작성된리스트를 개로분리하기가쉽다 다음은연결리스트에서있을수있는여러가지경우를설명했는데잘못된항목은

More information

슬라이드 1

슬라이드 1 CHP 6: 큐 C 로쉽게풀어쓴자료구조 생능출판사 2005 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 큐 DT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

Microsoft PowerPoint - 08-Queue.ppt

Microsoft PowerPoint - 08-Queue.ppt Chapter Queue ( 큐 ) Dongwon Jeong djeong@kunsan.ac.kr Department of Informatics & Statistics 학습목표 큐의개념및추상데이터타입에대한이해 큐의구현방법 배열 링크드리스트 덱 / 데크의개념과구현방법 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In

More information

Microsoft PowerPoint - 08-chap06-Queue.ppt

Microsoft PowerPoint - 08-chap06-Queue.ppt / 큐 (QUEUE) Chapter 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 큐 Ticket ox Dongwon Jeong djeong@kunsan.ac.kr Department of Kunsan National University 전단 () 후단 () 학습목표 큐 DT 큐의개념및추상데이터타입에대한이해

More information

05_tree

05_tree Tree Data Structures and Algorithms 목차 트리의개요 이진트리의구현 이진트리의순회 (Traversal) 수식트리 (Expression Tree) 의구현 Data Structures and Algorithms 2 트리의개요 Data Structures and Algorithms 3 트리의접근과이해 트리는계층적관계 (Hierarchical

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

chap x: G입력

chap x: G입력 원형큐 (Circular Queue) [2] [3] [2] [3] [1] [4] [1] [4] [0] [5] front = 0, rear = 0 [2] [3] [0] [5] front = 0, rear = 3 [1] [4] [0] [5] front = 0, rear = 0 최대큐이용률 = MAX_Q_SIZE 1 3 장. 스택과큐 (Page 13) 원형큐의구현

More information

2. QUEUE OPERATIONS Initialize the queue Insert to the rear of the queue (also called as Enqueue) Remove (Delete) from the front of the queue (also ca

2. QUEUE OPERATIONS Initialize the queue Insert to the rear of the queue (also called as Enqueue) Remove (Delete) from the front of the queue (also ca Queues The name "queue" likely comes from the everyday use of the term. Consider: queue of people waiting at a bus stop, as pictured in fig. below. Each new person who comes and takes his or her place

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 제 2 장연결리스트 리스트 일반적인리스트 (List) 는일련의동일한타입의항목 (item) 들 실생활의예 : 학생명단, 시험성적, 서점의신간서적, 상점의판매품목, 실시간급상승검색어, 버킷리스트등 일반적인리스트의구현 : - 1 차원파이썬리스트 (list) - 단순연결리스트 - 이중연결리스트 - 원형연결리스트 2.1 단순연결리스트 단순연결리스트 (Singly Linked

More information

중간고사 (자료 구조)

중간고사 (자료 구조) Data Structures 215 중간고사 문제에서명시적으로기술하지않은부분은교재의내용에근거함. 215. 1. 27. 1 다음용어에대하여간단하게설명하시오 ( 각 3 점 *1=3 점 ) 1 abstract data type 6 Circular linked list 2 recursion 3 time complexity 4 space complexity 5 Single

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular

More information

<4D F736F F F696E74202D FBFACB0E120C0DAB7E1B1B8C1B6205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FBFACB0E120C0DAB7E1B1B8C1B6205BC8A3C8AF20B8F0B5E55D> 연결자료구조 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents 학습목표 연결자료구조를이해한다. 순차자료구조와연결자료구조의차이와장단점을알아본다. 연결리스트의종류와특징을알아본다. 연결자료구조를이용한다항식의덧셈연산방법을알아본다. 내용 배열연결자료구조를이해한다. 순차자료구조와연결자료구조의차이와장단점을알아본다. 연결리스트의종류와특징을알아본다.

More information

ABC 10장

ABC 10장 10 장구조체와리스트처리 0 자기참조구조체 자기참조구조체는자기자신의형을참조하는포인터멤버를가짐 이러한자료구조를동적자료구조라고함 배열이나단순변수는일반적으로블록을진입할때메모리할당을받지만, 동적자료구조는기억장소관리루틴을사용하여명시적으로메모리할당을요구함 10-1 자기참조구조체 10-2 자기참조구조체 예제 struct list { int struct list a; data;

More information

데이터구조 (Chapter 3: Stacks and Queues) 2011 년봄학기 숙명여자대학교이과대학멀티미디어과학과박영호

데이터구조 (Chapter 3: Stacks and Queues) 2011 년봄학기 숙명여자대학교이과대학멀티미디어과학과박영호 데이터구조 (Chapter 3: Stacks and Queues) 2011 년봄학기 숙명여자대학교이과대학멀티미디어과학과박영호 Index Chapter 01: Basic Concepts Chapter 02: Arrays and Structures Chapter 03: Stacks and Queues Chapter 04: Lists Chapter 05: Trees

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 (front) 후단 (rear) 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element 형으로구성된요소들의순서있는모임

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은 Data structure: Assignment 1 Seung-Hoon Na October 1, 018 1 1.1 Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은 multiline으로 구성될 수 있으며, 한 라인에는 임의의 갯수의 숫자가 순서대로 나열될

More information

제 1 장 기본 개념

제 1 장 기본 개념 이진트리순회와트리반복자 트리순회 (tree traversal) 트리에있는모든노드를한번씩만방문 순회방법 : LVR, LRV, VLR, VRL, RVL, RLV L : 왼쪽이동, V : 노드방문, R : 오른쪽이동 왼쪽을오른쪽보다먼저방문 (LR) LVR : 중위 (inorder) 순회 VLR : 전위 (preorder) 순회 LRV : 후위 (postorder)

More information

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

4장. 순차자료구조

4장. 순차자료구조 순차자료구조방식 자바로배우는쉬운자료구조 이장에서다룰내용 1 선형리스트 2 선형리스트의구현 3 다항식의순차자료구조표현 4 행렬의순차자료구조표현 2 선형리스트 (1) 리스트 (List) 자료를나열한목록 ( 집합 ) 리스트의예 3 선형리스트 (2) 선형리스트 (Linear List) 순서리스트 (Ordered List) 자료들간에순서를갖는리스트 선형리스트의예 4

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

4장.문장

4장.문장 문장 1 배정문 혼합문 제어문 조건문반복문분기문 표준입출력 입출력 형식화된출력 [2/33] ANSI C 언어와유사 문장의종류 [3/33] 값을변수에저장하는데사용 형태 : < 변수 > = < 식 > ; remainder = dividend % divisor; i = j = k = 0; x *= y; 형변환 광역화 (widening) 형변환 : 컴파일러에의해자동적으로변환

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

7장

7장 CHAP 7: 트리 C 로쉽게풀어쓴자료구조 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현파일시스템인공지능에서의결정트리 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀생산 1 팀생산 2 팀 * 예제 : 책그림 7-2, 7-3, 7-4 트리의용어 노드 (node): 트리의구성요소 루트

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - 제11장 포인터(강의) 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

C 언어 강의노트

C 언어 강의노트 C언어 (CSE2035) (15-1 Lists) Linear list 의구성, Insertion, deletion 윤용운, Ph.D. Dept. of Computer Science and Engineering Sogang University Seoul, Korea Tel: 010-3204-6811 Email : yuyoon0@sogang.ac.kr 2018-01-11

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070> 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue

More information

Microsoft PowerPoint - logo_3.ppt [호환 모드]

Microsoft PowerPoint - logo_3.ppt [호환 모드] Logo Programming 학습목표 데이터종류를의미하는데이터타입에대해살펴본다. (LOGO의데이터타입 : 단어, 리스트, 배열 ) 값을저장하는공간인변수에대해살펴본다. 데이터관리하기에대해살펴본다. 2012. 5. 박남제 namjepark@jejunu.ac.kr < 데이터타입 > - 단어 단어단어 (word) 는 1 개이상의문자들을나열한것, 123 같은수도단어

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

chap x: G입력

chap x: G입력 3. 미로찾기 (Mazing Problem) 2 차원배열을이용한미로의구현 maze[row][column]: 0 길, 1 벽 그림 3.8 참조 이동방향 8 방향 (N, NE, E, SE, S, SW, W, NW) 각방향에대한 maze 배열의첨자변환 : 그림 3.9 경계지역 : 8 방향이아님. ( 모서리 : 3 방향, 변 : 5 방향 ) m p 미로를 (m +

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

슬라이드 1

슬라이드 1 Recursion SANGJI University KO Kwangman () 1. 개요 재귀 (recursion) 의정의, 순환 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로되어있는경우에적합한방법 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색

More information

슬라이드 1

슬라이드 1 UNIT 6 배열 로봇 SW 교육원 3 기 학습목표 2 배열을사용핛수있다. 배열 3 배열 (Array) 이란? 같은타입 ( 자료형 ) 의여러변수를하나의묶음으로다루는것을배열이라고함 같은타입의많은양의데이터를다룰때효과적임 // 학생 30 명의점수를저장하기위해.. int student_score1; int student_score2; int student_score3;...

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - 제11장 포인터 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

슬라이드 1

슬라이드 1 UNIT 08 조건문과반복문 로봇 SW 교육원 2 기 학습목표 2 조건문을사용핛수있다. 반복문을사용핛수있다. 조건문 3 조건식의연산결과에따라프로그램의실행흐름을변경 조건문의구성 조건식 실행될문장 조건문의종류 if switch? : ( 삼항연산자 ) if 조건문 4 if 문의구성 조건식 true 또는 false(boolean 형 ) 의결과값을갖는수식 실행될문장

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

(Microsoft Word - \301\337\260\243\260\355\273\347.docx) 내장형시스템공학 (NH466) 중간고사 학번 : 이름 : 문제 배점 점수 1 20 2 20 3 20 4 20 5 10 6 10 7 15 8 20 9 15 합계 150 1. (20 점 ) 다음용어에대해서설명하시오. (1) 정보은닉 (Information Hiding) (2) 캡슐화 (Encapsulation) (3) 오버로딩 (Overloading) (4) 생성자

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 C 언어포인터정복하기 16 강. 포인터로자료구조화하기 TAE-HYONG KIM COMPUTER ENG, KIT 2 학습내용 구조체멤버와구조체포인터멤버 다른구조체 ( 변수 ) 를가리키는구조체 ( 변수 ) 연결된리스트 의구성및관리 포인터로 연결된리스트 탐색하기 3 중첩구조체에자료저장하기 중첩된구조체변수에값저장하기 struct person { char PRID[15];

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

슬라이드 1

슬라이드 1 CHAP 7: 트리 C 로쉽게풀어쓴자료구조 생능출판사 2005 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 대표이사 응용분야 : 계층적인조직표현 총무부 영업부 생산부 파일시스템 인공지능에서의결정트리 전산팀구매팀경리팀생산 1 팀생산 2 팀 트리의용어 노드 (node): 트리의구성요소 루트 (root): 부모가없는노드

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information