본문 바로가기

C언어/간단 개념 정리6

우선순위 큐 1. 우선순위 큐 ADT ADT란? 순수하게 기능이 무엇인지를 나열한 것을 가리켜 '추상 자료형' 혹은 ADT라고 한다. 임의의 데이터 항목이 삽입되며, 일정한 순서에 의해 삭제되는 데이터구조. 데이터 항목 --> (키, 원소) 쌍 큐와 우선순위 큐의 비교 큐: 삽입된 순서 그대로 삭제. 우선순위 큐: 키 순서에 따라 삭제. 2. 우선순위 큐 응용 경매, 주식 등의 응용 방법 => 정렬 3. 우선순위 큐 ADT 메쏘드 주요 메쏘드 insertItem(k, e): 키 k인 원소 e를 큐에 삽입 element removeMin(): 큐로부터 최소 키를 가진 원소를 삭제하여 반환 일반 메쏘드: 큐 size 반환, 큐 empty 여부 봔환 접근 메쏘드: 최소키 원소, 최소키 반환 4. 우선순위 큐를 이용한 정렬.. 2022. 8. 31.
포인터와 함수(+const 선언) 함수의 인자로 배열 전달하기 배열을 함수의 인자로 전달하는 방식 void SimpleFunc(int * param); // 함수의 매개변수는 포인터변수로 선언 int main(){ int arr[3] = {1, 2, 3}; // 배열 선언 SimpleFunc(arr); // 함수 호출하면서 배열 arr의 주소 값 전달 } Call-by-value vs. Call-by-reference Call-by-value: 함수를 호출할 때 단순히 값을 전달하는 형태의 함수호출 Call-by-reference: 메모리의 접근에 사용되는 주소 값을 전달하는 형태의 함수호출 구분하는 이유: swap 함수 잘못 적용된 Call-by-value 주소 값을 전달하는 형태의 함수호출: Call-by-reference scanf.. 2021. 7. 9.
포인터와 배열 포인터와 배열의 관계 배열의 이름 = 배열의 시작 주소 값 배열의 이름은 상수 형태의 포인터이다. 그래서 '포인터 상수'라고 부르기도 함. 그렇기에 * 연산이 가능함. 포인터 연산 int * ptr = 0x0010; 에서 ptr1+1을 하면 정수이므로 sizeof(int)의 크기만큼 값이 증가한다. 이를 *연산자의 활용하면 *(ptr1+1)은 배열의 그 다음 값을 알 수 있는 것이다. 결론: arr[i] == *(arr+i) 상수 형태의 문자열을 가리키는 포인터 char str1[] = "My string"; 은 변수 형태의 문자열이다. char* str2 = "Your String"; 은 내용을 변경할 수 없으므로 상수 형태의 문자열이다. 포인터 배열 주소 값의 저장이 가능한 배열을 포인터 배열이라고 .. 2021. 7. 8.
포인터 맛보기 출저: 열혈 C 프로그래밍(윤성우) 포인터 변수 : 메모리의 주소 값을 저장하기 위한 변수 포인터 변수 선언 type * ptr; : type형 포인터 변수 ptr &연산자 : 피연산자의 주소 값을 반환하는 연산자. 잘못된 포인터의 사용과 널 포인터 * 널 포인터로 초기화 하는 것이 안전하다. (Null은 아무것도 가리키지 않는다는 의미) 2021. 7. 8.
728x90