본문 바로가기

PS8

여러개의 스택 구현 스택 구현 스택, 배열로 구현 #include #include #include #include #define INIT_CAPACITY 100 typedef int Item; typedef struct stack_type *Stack; Stack create(); void destroy(Stack s); void make_empty(Stack s); bool is_empty(Stack s); bool is_full(Stack s); void push(Stack s,Item i); Item pop(Stack s); Item peek(Stack s); struct stack_type{ Item *contents; int top; int size; }; static void terminate(const char.. 2018. 1. 15.
스택, 배열|링크드리스트 구현과 문제점 스택, 배열로 구현 #include #define MAX_CAPACITY 100 void push(char); char pop(); char peek(); int is_empty(); int is_full(); char stack[MAX_CAPACITY]; int top=-1; void push(char ch) { if(is_full()) //스택이 가득차면 push 불가, 이때의 경우를 알수있게 해야함 { return; } top++; stack[top]=ch; } char pop() //스택이 비어있는지 검사할것 { if(top==-1) { return NULL; } char tmp=stack[top]; top--; return tmp; } char peek() //pop과는 다르다. 비우지않고 반환.. 2018. 1. 14.
[메모] Linked-list HEAD바꿀때 포인터의 메모리주소를 담을땐 더블포인터를 이용하는것 잊지말자 2018. 1. 10.
조세푸스(josephus) 알고리즘 정리 조세푸스(Josephus)알고리즘 (종만북2 P.622) list객체.begin()은 주소의 처음 list객체.end()은 (마지막원소의 주소 +1)인 리스트 size를 반환한다. list객체.erase(A)는 A를 지운 뒤, (A의 다음원소)를 반환 .front()는 첫번째 원소 | .back()은 마지막 원소 2시간동안 헤매던 것 정리. if(kill==survivors.end()) kill=survivors.begin(); 이 부분에 대해 이해를 못함 survivors.end은 마지막원소의 데이터가 아닌, 리스트의 전체 크기를 말한다 따라서, 1과 4가 죽었을때 survivors.end()는 남은 인원수인 4를 말하며 kill의4는 몇번째 사람인지를 말한다. kill==survivors.end()일.. 2018. 1. 9.
반응형