c_language
-
*자료구조 제 11강 (이중연결리스트)자료구조 2022. 2. 27. 02:07
단방향 연결 리스트의 한계 어떤 노드의 앞에 새로운 노드를 삽입하기 어려움 삭제의 경우에 항상 삭제할 노드의 앞 노드가 필요 단방향의 순회만이 가능 이중 연결 리스트 각각의 노드가 다음 노드와 이전 노드의 주소를 가지는 연결 리스트 양방향의 순회 가능 struct node { char* data; struct node* next; struct node* prev; }; typedef struct node Node; Node* head; Node* tail; int size = 0;//연결리스트의 노드의 개수 노드 삽입 Node* new_node = (Node*)malloc(sizeof(Node));//새로운 노드 생성 new_node->data = "Sharon"; new_node->next = p; n..
-
*자료구조 제 10강(연결리스트-다항식)자료구조 2022. 2. 25. 11:54
연결리스트를 이용하여 하나의 다항식을 표현하는 구조체 Polynomial을 정의한다. 다항식을 항들의 연결리스트로 표현한다. 항들을 차수에 대해서 내림차순으로 정렬하여 저장하며, 동일 차수의 항을 2개 이상 가지지 않게 한다. 또한 계수가 0인 항이 존재하지 않게 한다. 하나의 항은 계수와 지수에 의해 결정된다. 하나의 항을 표현하기 위해 구조체 Term을 정의한다. 변수 x의 값이 주어질 때 다항식의 값을 계산하는 함수를 제공한다. Polynomial 구조체는 name, first, size 필드로 구성되어 있다. name에는 다항식의 이름, first에는 식의 첫 항의 주소, size에는 항의 개수를 저장한다. Term 구조체는 coef, expo, next 필드로 구성되어있다. coef에는 계수, ..
-
자료구조 제 9강 (연결리스트-개념과 기본 동작들)자료구조 2022. 2. 22. 18:05
리스트 기본적인 연산: 삽입, 삭제, 검색 등 리스트를 구현하는 대표적인 두 가지 방법: 배열, 연결리스트 배열의 단점 크기가 고정 - reallocation이 필요 리스트의 중간에 원소를 삽입하거나 삭제할 경우 다수의 데이터를 옮겨야 함 연결리스트 다른 데이터의 이동없이 중간에 삽입하거나 삭제가 가능함 길이의 제한이 없음 랜덤 액세스가 불가능 랜덤 액세스: 배열의 시작주소에서 n번째 칸까지 한 번에 갈 수 있는 것과 같음 (ex. 시작주소 + (n * 1칸의 크기)) 연결리스트: 노드들이 link로 서로 연결되어있는 자료구조 노드: 어떤 데이터와 그 다음 데이터의 주소가 하나로 묶여있는 단위 각각의 노드는 필요한 데이터 필드와 하나 혹은 그 이상의 링크 필드로 구성 링크 필드는 다음 노드의 주소를 저장..
-
사칙연산하는 프로그램학교 과제/C프로그래밍 2021. 12. 3. 15:20
두 개의 숫자와 사칙연산 기호를 입력하면 실행하여 결과를 출력하는 프로그램 조건 - 연산을 하는 소스파일, 입출력하는 소스파일, 함수들을 호출해서 결과를 확인하는 소스파일 만들기 - 헤더파일 만들어서 세 소스파일을 사용할 수 있도록 하기 - 포인터는 사용하지 않기 main.c #include #include "myheader.h" // 함수들이 선언된 헤더파일 double num1, num2; // 사칙연산에 피연산자로 사용되는 수를 저장하는 변수 char tool; // 사칙연산 기호를 저장할 변수 int main() { myInput(); // 입력을 담당하는 함수 호출 return 0; } iofunc.c #include #include "myheader.h" // 함수들이 선언된 헤더파일 //ma..