노드 구조체 연결 리스트 안에 있는 노드 하나 하나에 대한 형식입니다. 자료형은 'Dnode'입니다. 연결 리스트 구조체 연결 리스트 전체에 대한 형식입니다. 자료형은 'Dlist'입니다. 함수 01 AllocDNode - 노드 생성 노드 1개 크기의 공간을 생성한 뒤, 이 노드에 대한 포인터를 반환합니다. 함수 02 SetDNode - 노드 값 설정 노드 n에 넣고 싶은 값(데이터 x, 앞 노드에 대한 포인터 prev, 뒤 노드에 대한 포인터 next)를 넣습니다. 함수 03 IsEmpty - 연결 리스트가 비어 있는지 알아내기 연결 리스트 list가 비어 있으면 1을, 무언가가 있으면 0을 반환합니다. 함수 04 Initialize - 연결 리스트 생성 연결 리스트 list를 생성합니다. 함수 05 ..
Algorithm
Null은 -1과 같게 하고, Index는 int와 같게 한 뒤 코드를 살펴보겠습니다. 노드 구조체 연결 리스트 안에 있는 노드 하나 하나에 대한 형식입니다. 자료형은 'Node'입니다. 연결 리스트 구조체 연결 리스트 전체에 대한 형식입니다. 자료형은 'List'입니다. 함수 01 GetIndex - 레코드가 삽입될 위치의 인덱스 알아내기 연결 리스트 list에 새로운 노드를 삽입하고 싶을 때, 삽입될 위치의 인덱스를 알아낸 뒤 반환합니다. 함수 02 DeleteIndex - 지정된 레코드를 삭제 리스트에 등록 연결 리스트 list에서 인덱스 idx에 있는 레코드를 삭제하여 프리 리스트에 등록합니다. 함수 03 SetNode - 노드에 값 설정 노드 n에 넣고 싶은 값(데이터 x와 다음 노드에 대한 인..
노드 구조체 연결 리스트 안에 있는 노드 하나 하나에 대한 형식입니다. 자료형은 'Node'입니다. 연결 리스트 구조체 연결 리스트 전체에 대한 형식입니다. 자료형은 'List'입니다. 함수 01 AllocNode - 노드 생성 노드 1개 크기의 공간을 생성한 후, 그 노드를 가리키는 포인터를 반환합니다. 함수 02 SetNode - 노드 값 설정 노드 n에 넣고 싶은 값(데이터 x와 다음 노드에 대한 포인터 next)을 넣어줍니다. 함수 03 Initialize - 연결 리스트 생성 연결 리스트 list를 생성합니다. 함수 04 Search - 연결 리스트에서 원하는 데이터 찾기 연결 리스트 list에서 원하는 데이터 x가 들어있는 노드에 대한 포인터를 반환합니다. 함수 05 InsertFront - ..
큐 구조체 함수 01 Initialize - 큐 생성하기 크기가 max인 큐 q를 생성합니다. (함수의 성공 여부를 반환합니다.) 함수 02 Enque- 큐에 데이터 넣기 데이터 x를 큐 q에 넣습니다. (함수의 성공 여부를 반환합니다.) 함수 03 Deque - 큐에서 데이터 빼기 큐 q에서 맨 앞에 있는 데이터를 꺼내어 포인터 x에 기억합니다. (함수의 성공 여부를 반환합니다.) 함수 04 Peek - 큐에서 맨 앞에 있는 데이터 알아내기 큐 q에서 맨 앞에 있는 데이터를 포인터 x에 기억합니다. (함수의 성공 여부를 반환합니다.) 함수 05 Clear - 큐 비우기 큐 q를 초기화 시킵니다. 함수 06 Capacity - 큐 용량 알아내기 큐 q에 최대로 들어갈 수 있는 데이터 개수를 반환합니다. ..
스택 구조체 함수 01 Initialize - 스택 생성하기 크기가 max인 스택 s를 생성합니다. (함수의 성공 여부를 반환합니다.) 함수 02 Push - 스택에 데이터 넣기 데이터 x를 스택 s에 넣습니다. (함수의 성공 여부를 반환합니다.) 함수 03 Pop - 스택에 데이터 빼기 스택 s에서 꼭대기 데이터를 꺼내어 포인터 x에 기억합니다. (함수의 성공 여부를 반환합니다.) 함수 04 Peek - 스택 꼭대기 데이터 알아내기 스택 s에서 꼭대기 데이터를 포인터 x에 기억합니다. (함수의 성공 여부를 반환합니다.) 함수 05 Clear - 스택 비우기 스택 s를 초기화 시킵니다. 함수 06 Capacity - 스택 용량 알아내기 스택 s에 최대로 들어갈 수 있는 데이터 개수를 반환합니다. 함수 0..
자료를 저장하기 스택 https://beluga9.tistory.com/201 큐 https://beluga9.tistory.com/202 연결 리스트 연결 리스트 by 포인터 https://beluga9.tistory.com/203 연결 리스트 by 커서 https://beluga9.tistory.com/204 원형 이중 연결 리스트 https://beluga9.tistory.com/205 트리 https://beluga9.tistory.com/206 집합 집합 by 배열 https://beluga9.tistory.com/207 집합 by 비트 벡터 https://beluga9.tistory.com/208 해시 오픈 해시법 (체인 해시법) https://beluga9.tistory.com/209 닫힌 ..
사용자가 얼마만큼의 길이의 입력을 할 것인지 미리 알 수 있다면, 그만큼의 크기의 배열을 선언하여 사용할 수 있습니다. 하지만 그렇지 않은 상황에서는 어떻게 메모리를 할당받아야 할까요? 바로 연결 리스트를 사용하는 것이 핵심입니다. 사용자가 입력하는 글자 하나하나를 연결 리스트의 노드 하나하나에 각각 저장하면 됩니다. 1단계_ 필요한 헤더 파일 동적 할당 함수 'malloc'을 사용하기 위해서 파일을 불러옵니다. 2단계_ 구조체 선언 연결 리스트를 구성하게 될 노드의 형식을 선언해줍니다. 하나의 노드에는 문자 1개가 저장될 변수 'character'와, 다음번 노드를 가르킬 포인터 'p_next'로 구성됩니다. 3단계_ AddCharacter 함수 선언하기 연결 리스트에 새로운 노드를 생성하여 새로운 데..