CS/자료구조(46)
-
[자료구조 - C언어] 자료구조 제14강: Music Library Program(4)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 0. 실행 예 Data file name? - 프로그램을 실행하면 어떤 데이터 파일을 load 할지 물어본다. 입력 없이 Enter를 치면 데이터 파일로부터 데이터를 읽지 않고 프로그램을 실행 status - 저장된 모든 노래의 번호, 가수, 제목, 파일의 경로명을 출력 노래의 번호는 입력 순서대로 번호 할당 출력 시 가수 이름 알파벳 순으로 출력 동일한 가수 이름이면 노래 제목으로 알파벳 순으로 출력 add - 가수 이름, 제목, 파일명으로 추가 파일명은 지정하지 않아도 된다. search - 가수 이름과 노래 제목으로 검색 제목 없이 가수 이름만 검색해도 된다. play 4 - 4번 노래를 play remove 6..
2022.10.28 -
[자료구조 - C언어] 자료구조 제14강: Music Library Program(3)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 0. 실행 예 Data file name? - 프로그램을 실행하면 어떤 데이터 파일을 load 할지 물어본다. 입력 없이 Enter를 치면 데이터 파일로부터 데이터를 읽지 않고 프로그램을 실행 status - 저장된 모든 노래의 번호, 가수, 제목, 파일의 경로명을 출력 노래의 번호는 입력 순서 대로 번호 할당 출력 시 가수 이름 알파벳 순으로 출력 동일한 가수 이름이면 노래 제목으로 알파벳 순으로 출력 add - 가수 이름, 제목, 파일명으로 추가 파일명은 지정하지 않아도 된다. search - 가수 이름과 노래 제목으로 검색 제목 없이 가수 이름만 검색해도 된다. play 4 - 4번 노래를 play remove ..
2022.10.27 -
[자료구조 - C언어] 자료구조 제14강: Music Library Program(1), (2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 0. 실행 예 Data file name? - 프로그램을 실행하면 어떤 데이터 파일을 load 할지 물어본다. 입력 없이 Enter를 치면 데이터 파일로부터 데이터를 읽지 않고 프로그램을 실행 status - 저장된 모든 노래의 번호, 가수, 제목, 파일의 경로명을 출력 노래의 번호는 입력 순서대로 번호 할당 출력 시 가수 이름 알파벳 순으로 출력 동일한 가수 이름이면 노래 제목으로 알파벳 순으로 출력 add - 가수 이름, 제목, 파일명으로 추가 파일명은 지정하지 않아도 된다. search - 가수 이름과 노래 제목으로 검색 제목 없이 가수 이름만 검색해도 된다. play 4 - 4번 노래를 play remove 6..
2022.10.27 -
[자료구조 - C언어] 자료구조 제13강: 이중 연결 리스트
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 단방향 연결 리스트와 이중 연결 리스트 단방향 연결 리스트(single linked list) 어떤 노드의 앞에 새로운 노드를 삽입하기 어려움 삭제할 노드의 앞 노드가 필요함 단방향 순회만 가능 양방향 연결 리스트(double linked list) = 이중 연결 리스트 양방향 순회가 가능 각각의 노드가 다음(next) 노드와 이전(previous) 노드의 주소를 가지는 연결 리스트 2. 양방향 연결 리스트의 Node struct node{ char *data; struct node *next; struct node *prev; }; typedef struct node Node; Node *head; //연결리스..
2022.10.26 -
[자료구조 - C언어] 자료구조 제12강: 연결 리스트 - 다항식(3)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 0. Use Case $ 프롬프트로 입력 공백 입력 가능 ~ 무시 계수는 정수, 지수는 양수 calc f 1 = f(1)을 의미 ~ 다음 줄에 결괏값 출력 g= f + g ~ 두 개의 다항식을 정해, 새로운 다항식을 만들 수 있다 기존에 존재하던 다항식을 덮어쓸 수 있다 입력 - 차수에 대한 내림차순 X, 동일 차수의 항이 여럿 출력 - 차수에 대한 내림차순 O 동일 이름의 함수를 새로 정의 O 연결 리스트를 이용하여 하나의 다항식을 표현하는 구조체 Polynomial을 정의 각각의 항을 연결 리스트로 연결 & 차수에 대한 내림차순 동일 차수의 항을 2개 이상 X, 계수가 0인 항 존재 X 하나의 항은 계수와 지수로 ..
2022.10.25 -
[자료구조 - C언어] 자료구조 제12강: 연결 리스트 - 다항식(2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 2022. 10. 25 - void handle_definition(char *expression) 함수 수정 expression = erase_blanks(expression); -> expression = erase_blanks(expression); - void print_poly(Polynomial *p) 함수 조건 추가 if(t->expo==0) printf("%d",t->coef); 0. Use Case $ 프롬프트로 입력 공백 입력 가능 ~ 무시 계수는 정수, 지수는 양수 calc f 1 = f(1)을 의미 ~ 다음 줄에 결괏값 출력 g= f + g ~ 두 개의 다항식을 정해, 새로운 다항식을 만들 수 있..
2022.10.21 -
[자료구조 - C언어] 자료구조 제12강: 연결 리스트 - 다항식(1)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 0. Use Case $ 프롬프트로 입력 공백 입력 가능 ~ 무시 계수는 정수, 지수는 양수 calc f 1 = f(1)을 의미 ~ 다음 줄에 결괏값 출력 g= f + g ~ 두 개의 다항식을 정해, 새로운 다항식을 만들 수 있다 기존에 존재하던 다항식을 덮어쓸 수 있다 입력 - 차수에 대한 내림차순 X, 동일 차수의 항이 여럿 출력 - 차수에 대한 내림차순 O, 동일 이름의 함수를 새로 정의 O 연결리스트를 이용하여 하나의 다항식을 표현하는 구조체 Polynomial을 정의 각각의 항을 연결 리스트로 연결 & 차수에 대한 내림차순 동일 차수의 항을 2개 이상 X, 계수가 0인 항 존재 X 하나의 항은 계수와 지수로 ..
2022.10.20 -
[자료구조 - C언어] 자료구조 제11강: 연결 리스트 - 개념과 기본 동작들(5)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 연결 리스트 순회하기 순회(traverse): 연결 리스트의 노드들을 처음부터 순서대로 방문하는 것 p = p → next; 그 다음 주소로 넘어감 //입력된 문자열 word와 동일한 단어를 저장한 노드를 찾아 //그 노드의 주소를 반환하는 함수 Node *find(char *word){ //연결 리스트를 순회할 노드 포인터 p //처음에는 첫 번째 노드를 가리키도록 Node *p = head; while(p != NULL){ //p가 null이 될 때 까지 if (strcmp(p-> data, word) == 0) return p; //찾으면 그 주소를 반환 p = p -> next; //그렇지 않으면 다음 주..
2022.10.19 -
[자료구조 - C언어] 자료구조 제11강: 연결 리스트 - 개념과 기본 동작들(4)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 어떤 노드 뒤에 새로운 노드 삽입하기 새로운 노드를 만들고 데이터를 저장한다. 새로운 노드의 next 필드가 prev의 다음 노드를 가리키도록 한다. 새로운 노드를 prev의 다음 노드로 만든다. #include #include struct node{ char * data; struct node * next; }; typedef struct node Node; Node *head = NULL; void main(){ Node *temp = (Node*)malloc(sizeof(Node)); temp -> data = data_to_store; temp -> next = prev->next; prev -> next..
2022.10.19 -
[자료구조 - C언어] 자료구조 제11강: 연결 리스트 - 개념과 기본 동작들(3)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 연결 리스트의 맨 앞에 새로운 노드 삽입하기 새로운 노드를 만들고 → 추가할 데이터를 저장 배열) 공간을 미리 잡아두고 데이터를 수시로 채움 연결 리스트) 필요할 때마다 동적 할당으로 노드를 생성 ~ 노드의 개수 = 데이터의 개수 새로운 노드의 next 필드가 현재 head 노드가 가리키는 노드를 가리키도록 한다. 현재의 head 노드가 가리키는 노드의 주소는 head 노드에 저장되어 있다. head노드는 첫 번째 노드를 가리킴 새로 생성한 노드를 새로운 head 노드로 한다 이 과정을 앞선 과정보다 먼저하면 원래 가리키고 있었던 첫 번째 노드의 주소를 분실하기 때문에 순서에 유의 #include #include..
2022.10.18 -
[자료구조 - C언어] 자료구조 제11강: 연결 리스트 - 개념과 기본 동작들(2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 연결 리스트 예제프로그램 연결 리스트는 노드 10개를 미리 만들어두고 사용하지 않고 필요한 그때그때마다 노드를 만들어서 연결 리스트에 추가한다. 연결 리스트 예제프로그램 목표 struct node{ char * data; struct node * next; }; typedef struct node Node; Node *head = NULL; 1-1. 2nd int main(){ //어떤 구조체를 가리키는 포인터 head Node *head = (Node *)malloc(sizeof(Node)); //head가 가리키는 구조체 안의 data 멤버를 엑세스할 때 화살표 연산자를 쓴다. //head->data = "2..
2022.09.20 -
[자료구조 - C언어] 자료구조 제11강: 연결 리스트 - 개념과 기본 동작들(1)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 리스트(List) List: 리스트: 원소들 간의 순서 개념 O ex) (1, 2, 3) ≠ (3, 2, 1) Set: 집합: 원소드 간의 순서 개념 X ex) {1, 2, 3} == {3, 2, 1} 리스트: 하나가 아닌 여러 개가 쭉 일렬로 나열되어 있는 것 기본적인 연산: 삽입(insert), 삭제(remove), 검색(search) 리스트를 구현하는 대표적인 두 가지 방법 - 배열, 연결 리스트 배열 장점) 랜덤 액세스가 가능한 자료구조 배열의 이름은 포인터 변수이고, 이 포인터 변수는 배열의 시작 주소를 가지고 있다. 배열의 각 칸은 동일한 타입이다 → 배열의 각 칸은 크기가 동일하다. 배열의 각각의 항..
2022.09.20