본문 바로가기

자료구조12

C언어 스택(STACK) 예제 스택(STACK) - 자료구조 스택(stack)은 모든 원소들의 삽입(insert)과 삭제(delete)가 리스트의 한쪽 끝에서만 수행되는 제한 조건을 가지는 선형 자료 구조(linear data structure)로서, 삽입과 삭제가 일어나는 리스트의 끝을 top이라 하고, 다른 한쪽 끝을 bottom이라 한다. 스택은 종종 pushdown stack이라고도 하는데, 스택의 top에 새로운 원소를 삽입하는 것을 push라 하고, 가장 최근에 삽입된 원소를 의미하는 스택의 top으로부터 한 원소를 제거하는 것을 pop이라 한다. 이와 같은 스택 연상은 항상 스택의 top에서 발생하므로 top 포인터의 값을 1씩 증가 또는 감소시킴으로써 수행된다. 큐가 FIFO(first int first out)이고 스.. 2018. 4. 25.
C언어 큐(QUEUE) 예제 큐(QUEUE) - 자료구조 리스트의 한쪽 끝에서만 삽입과 삭제가 일어나는 스택과는 달리 리스트의 한쪽 끝에서는 원소들이 삭제되고 반대쪽 끝에서는 원소들의 삽입만 가능하게 만든 순서화된 리스트. 가장 먼저 리스트에 삽입된 원소가 가장 먼저 삭제되므로 선입 선출인 FIFO(first in first out) 리스트라고 한다. 다음은 C언어로 크기가 5인 큐를 구현한 코드이다.대충 설명을 하면 크기가 5인 큐를 만들고 (메모리 할당을 하고) 초기화를 하고 데이터를 삽입(PUSH)하고 데이터를 추출(POP)하는 것이다.삽입 순서가 1 -> 2 -> 3 -> 4 -> 5 인 경우 출력 순서는 1 -> 2 -> 3 -> 4 -> 5 이다. 큐의 사용처는 가장 쉽게 볼 수 있는 곳이 프린트이다. 프린터가 출력하는 .. 2018. 4. 25.
c언어로 짠 어떤 숫자가 들어오든 1의 자리는 버리고 10의 자리는 올리기 이런 식의 문제는 코딩 대회나 취업 등에서 손코딩 문제 등으로 나올 수 있다. 문제) 어떤 숫자가 들어오든지 1의 자리는 버리고, 10의 자리는 올려서 변환된 숫자를 리턴해라. 예를들어 0부터 9까지는 0이다.10부터 109까지는 100을 출력하는 코드이다.110부터 209까지는 200을 출력한다. 이런식으로 1의 자리는 버리고 10의 자리는 올려주면된다. c언어로 구현하면 다음과 같다. #include int main(void){ int n; int k; scanf("%d",&n); n=n/10; k=n%10; if(k>0){ n=n/10; n++; n=n*100; }else n*=10; printf("%d\n",n); } 2018. 4. 20.
c언어로 짠 띄어쓰기 기준으로 문자열 순서만 뒤집기 문자열의 순서를 뒤집어서 쓰되 문자열 개개는 순서를 유지하는 코드이다.예를 들어 문자열 "I am zeta "를 "zeta am I" 뒤집는 코드이다.쉽게 생각해서 띄어쓰기(스페이스 바) 기준으로 순서만 뒤집어보자. 코드는 다음과 같다. #include int main(void){char * str = "I am zeta"; char str2[100];int space=0;int len=0; while(str[len] != '\0'){ if(str[len] == ' ')space++;len++;}str2[len]='\0'; int k=0;int gan=0;int t=0;for(int i=len-1;i>=0;i--){gan++;if(str[i] == ' '){t=i+1;for(int j=0;j 2018. 4. 20.