목록컴퓨터공학/자료구조 (6)
cyphen156
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/YJnMj/btsE7rwd1OA/nDvJTcH97HCk6WRCQ37WFk/img.jpg)
큐는 스택과 더불어 가장 많이 쓰이는 자료 입출력 구조이다. 스택(Stack)이 후입선출(LIFO)방식이었다면, 큐(Queue)는 선입선출(FIFO)의 구조로 입장순서에 대한 개념과 같다. 운영체제 입장에서도 중요한데 특별한 이유(Exception/우선 처리 지시 등의 예외사항)가 아니라면 무조건 먼저 들어온 프로세스를 먼저 처리하는 과정으로 동작하기 때문에 중요하다. 기본적으로 사용하는 형식은 스택을 구현했을 때와 유사하게 사용하지만, 다른점은 스택을 사용했을 때와 달리 큐를 구현할때는 마지막 노드(tail==stack의 top)와 마찬가지로 첫번째 노드 (Head)에 대한 정보가 중요하다는 것이다. Queue.c /** * 큐 자료구조 구현하기 * // 단일연결리스트 * using struct * *..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mgiA8/btsEvWK67Z3/DJ9FuhpkVxedLIOQFlTW2K/img.jpg)
구조체, 리스트를 사용한 자료구조 만들어보기 첫번째 스택 다 만드는데 대충 2시간쯤 걸렷나? 싶다 간만에 하니까 기억이 가물가물하네 기본적으로 스택은 리스트의 한 유형에 해당한다. LIFO(Last In Frist Out/후입 선출)이라는 구조를 가지고 있는데, 가장 마지막에 입력된 자료가 맨 처음 수행되는 하노이의 탑쌓기라고 생각하면 된다. 스택이 중요한건 컴퓨터가 메모리 상에서도 스택이라는 구조를 사용하기도 하지만, 운영체제 입장에서도 다른것은 신경쓸 필요 없이 최상위 데이터만 신경쓰면 되기에 처리 속도면에서 효율적인 자료구조라고 볼 수 있다. 스택이 비었을 경우의 동작 스택에 자료를 입력한 이후의 동작 /** * 스택자료구조 구현하기 * //리스트 * using struct * */ #define ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dHHa4a/btsqh3RDdHR/ofjXUrhSN5SNKsKpzBHyl0/img.jpg)
오늘날의 현대 컴퓨팅 환경에서는 대부분 2의 보수를 통해 수치 자료를 표현한다. 2의 보수 2의 보수란 2진수 체계에서 음수와 양수, 그리고 0이라는 수를 표현하기 위해 사용되는 수 체계로, 8비트를 기준으로 최상위 비트(MSB)를 부호비트로 사용하고, 남는 7개의 비트를 통해 수를 표현하는 방법이다. 숫자 0인 경우 00000000(0),양수의 경우 00000001(1)~01111111(127), 11111111(-1)~10000000(-128)로 표현된다. 특이한 점은 양수의 표현 범위가 2의 7제곱이 아니라 2의 7제곱 -1이라는 사실인데 이것은 0의 존재를 표현하기 위해서이다. 2의 보수체계에서 양수를 음수로 만드는 과정은 간단하다. 2진수 양수의 모든 비트를 반전(0->1, 1->0)시킨뒤, 1..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bXePE4/btspOC80qMu/RbGDoOmZ7Sdg2iRqkkjbj1/img.jpg)
컴퓨터가 10진수를 표현하는 방법은 여러가지 방법이 있지만 오늘 소개할 방법은 존(Zone)과 팩(Pack)이라는 형식이다. 이 두 방법은 IBM에서 BCD/EBCDIC(Binary Coded Decimal / Extended Binary Coded Decimal Interchange Code)라는 문자 코딩방식에서 나온 특수한 형식으로, 주로 정밀한 수의 계산이 필요한 금융권에서 사용하는 일반적인 프로그래밍 언어에서 사용하는 방법은 아니다. 두 형식 모드 수를 표현할 때 1바이트 단위로 사용한다는 것은 동일하지만 약간의 차이점이 존재한다. 존(Zone) 형식 표현법 존 형식은 상위 4비트는 1111(F) 또는 1110(D, 양)/1100(C, 음수)로 채워 부호비트인지 여부를 알려주고, 하위 4비트에 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ZUra0/btrhS4F5yBQ/K9s1wbsLKYVXgHPgmDyvo0/img.jpg)
소프트웨어 생명주기 요구분석 -> 시스템 명세 -> 설계 -> 구현 -> 테스트 -> 유지보수 요구분석 문제를 분석하고 개발할 소프트 웨어의 기능과 제약조건, 목표 등을 사용자와 함께 명확히 정의하는 단계 시스템 명세 시스템이 수행하는 내용을 정의하는 단계 설계 시스템 명세 단계에서 정의한 기능을 실제 수행하기 위한 방법을 논리적으로 결정하는 단계 시스템 구조 설계 : 시스템을 구성하는 내부 프로그램이나 모듈 간의 관계와 구조를 설계 프로그램 설계 : 프로그램 내의 각 모듈에서의 처리 절차나 알고리즘을 설계 사용자 인터페이스 설계 : 사용자가 시스템을 이용하기 위해 보여지는 부분을 설계 하향식 설계 : 큰 틀을 설계한 뒤 세부적으로 쪼개어 나가면서 점차 구체적으로 설계하는 분할 정복 방식의 설계 상향식 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ejoVtv/btrhTTcyr5r/DBitK52GZIFUpj867dpy60/img.jpg)
자료구조란? -> 자료를 효율적으로 사용할 수 있도록 특성에 따라서 구성하고 저장하고 처리하는 것 자료구조가 필요한 이유 -> 컴퓨터는 사람이 원하는 것을 알아서 처리할 수 없기 때문 --> 사람이 자료를 구조적인 측면에서 효율적으로 설계해 주어야함 컴퓨터의 문제 해결 과정 자료구조도 자료구조 단순구조 정수 실수 문자 문자열 선형구조 : 자료들 간의 앞뒤 관계가 1 : 1의 선형관계 리스트 연결리스트 - 단순 , 이중 , 원형 스택 큐 덱 비선형구조 : 자료들 간의 관계가 1 : 多, 多 : 多의 관계 트리 - 일반, 이진 그래프 - 방향, 무방향 파일구조 : 레코드의 집합체인 파일에 대한 구조 순차파일 색인파일 직접파일 자료의 표현 컴퓨터는 이진수코드(Binary Code)를 통해서 자료를 표현한다 (..