본문 바로가기

휴지통665

원형 연결 리스트 앞서 우리가 구현한 연결리스트의 마지막 노드는 NULL을 가리켯다. 바로 이 마지막 노드가 첫번째 노드를 가리키게 하면 이것이 바로 '원형 연결리스트'가된다. 즉 단순연결리스트가 다음의 구조라면 head->2->4->6->8->NULL 마지막 노드가 첫번째 노드를 가리켜서 , 연결의 형태가 원을 이루는 다음 구조의 연결리스트를 가리켜 '원형 연결 리스트'라 한다. head->2->4->6->8->2 그럼 원형 연결리스트의 특성을 더 알기위해서 숫자 1이 저장된 노드를 머리부분에 추가하겠다. head->1->2->4->6->8->1 이번엔 반대로 원래상태에서 숫자 1이 저장된 노드를 꼬리에 추가해보겠다 . head->2->4->6->8->1->2 위의 상태를 보면 다음과 같은 사실을 알 수 있다. "두 연.. 2021. 2. 15.
연결리스트 3 이제 연결리스트의 정렬 삽입을 구현해 볼것이다. 우리가 구현한 연결리스트에서 정렬기준의 설정과 관련 있는 부분은 다음과 같다. 따라서 이들은 하나로 묶어서 이해해야 한다. 1. 연결리스트의 정렬기준이 되는 함수를 등록하는 SertSortRule 함수 2. SerSortRule 함수를 통해서 전달된 함수 정보를 저장하기 위한 LinkedList의 멤버 comp 3. comp에 등록된 정렬 기준을 근거로 데이터를 저장하는 SInsert함수 위에서 언급한 세 가지를 하나의 문장으로 정리하면 다음과 같다. "SetSortRule 함수가 호출되면서 정렬의 기준이 리스트의 멤버 comp에 등록되면, SInesrt함수 내에서는 comp에 등록된 정렬의 기준을 근거로 데이터를 정렬하여 저장한다." 이렇듯 SetSort.. 2021. 2. 14.
연결리스트2 연결의 형태가 한쪽 방향으로 전개되고 시작과 끝이 분명히 존재하는 '단순 연결 리스트'이다. 정렬 기능이 추가된 연결리스트의 ADT정의 기능적으로 무엇인가를 변경하거나 추가하지 않는다면 ADT를 변경할 이유는 없다. 그래서 앞서 배열리스트에 정의한 리스트ADT를 그대로 적용해도된다. 하지만 연결리스트에 정렬 관련 기능을 추가하기 위해서 ADT를 조금확장한다. 정렬 기능이 추가된 리스트 자료구조의 ADT void ListInit(List *plist); -초기화할 리스트의 주소 값을 인자로 전달한다. -리스트 생성 후 제일 먼저 호출되어야 하는 함수이다. void LInsert(List *plist, LData data); -리스트에 데이터를 저장한다. 매개변수 data에 전달된 값을 저장한다. int L.. 2021. 2. 13.
링크드리스트1 연결 기반의 리스트 간단히 연결 리스트라고 불리는 리스트의 구현을 이해하기 위해서는 malloc와 free함수를 기반으로 하는 메모리의 동적할당에 대한 완전한 이해가 되어야 한다. #include int main() { int arr[10]; int readCount =0; int readData; int i; while(1) { printf("자연수 입력 : "); scanf("%d", &readData); if(readDatanext = newNode; tail = newNode; } printf("\n"); //입력 받은 데이터의 출력과정 printf("입력 받은 데이터의 전체 출력\n); if(head ==NULL) { printf("저장된 자연수가 존재하지 않습니다.\n"); } else { c.. 2021. 2. 12.
매크로와 선행처리기(Preprocessor) 선행처리는 컴파일 이전의 처리를 의미한다. 선행처리는 선행처리기에 의해서 처리되고, 컴파일은 컴파일러에 의해서, 링크는 링커에 의해서 진행이 된다. 컴파일 이전에 선행처리의 과정을 거친다는 점에 주목해야 한다. 선행처리기가 하는 일은 단순한다. 우리가 삽입한 선행처리명령문대로 소스코드의 일부를 수정한다. 여기서 말하는 수정이란 단순 치환(substitution)의 형태를 띠는 경우가 대부분이다. #define PI 3.14 위의 문장은 PI를 3.14로 치환해라 라는 뜻이다 . 즉 선행처리 명령문은 # 문자로 시작을 한다. 컴파일러가 아닌 선행처리기에 의해서 처리되는 문장이고, 명령문의 뒤에 세미콜론을 붙이지 않는다. #define : Object- like - macro #define 지시자 PI 매크.. 2021. 2. 12.
C언어 함수들1 #include int _getch(void) 문자 입력하기 int _putch(int ch); 문자 출력하기 #includ int _stricmp(const char *s1, const char *s2); 문자열을 비교하는데 대, 소문자 구분을 안함 char *strstr(const char *string, const char * strCharSet); string은 검색될 문자열 , strCharSet은 검색할 문자 또는 문자열 검색 성공시 검색 위치의 포인터 값(번지) 반환 실패시 NULL반환 char * strchr(const char *satring, int c); string은 검색될 문자열, c는 검색할 문자 찾으면 그 위치의 메모리 번지 값 반환, 찾지 못하면 NULL반환 ret(검색된 번.. 2021. 2. 11.