이진 탐색 트리의 탐색/삽입/삭제 연산 - C언어
·
C
https://tildacoderecorder.tistory.com/104이진 트리에 대한 개념 설명은 아래 글 참조 👇🏻 [ 자료구조 ] 트리와 이진트리의 개념과 구조 - C언어트리 : 원소들 간에 1:n 관계를 가지는 비선형 자료구조, 원소들 간에 계층 관계를 가지는 계층형 자료구조, 상위 원소에서 하위 원소로 내려가면서 확장되는 트리(나무) 모양의 구조 트리는 하나tildacoderecorder.tistory.com 이진 탐색 트리 Binary search Tree: 이진 트리를 탐색용 자료구조로 사용하기 위해 원소 크기에 따라 노드 위치를 정한 것모든 원소는 서로 다른 유일한 키를 갖는다.왼쪽 서브 트리에 있는 원소들의 키는 그 루트의 키보다 작다.오른쪽 서브 트리에 있는 원소들의 키는 그 루..
트리와 이진트리의 개념과 구조 - C언어
·
C
트리 Tree트리 : 원소들 간에 1:n 관계를 가지는 비선형 자료구조, 원소들 간에 계층 관계를 가지는 계층형 자료구조, 상위 원소에서 하위 원소로 내려가면서 확장되는 트리(나무) 모양의 구조트리는 하나의 루트 노드를 가지며 각 자식 노드와 부모 노드는 간선(edge)로 연결되어 있다. 트리의 이해차수노드의 차수 : 노드에 연결된 자식 노드의 수. ex ) 위 노드를 예로 들어 F의 차수는 2, G의 차수는 1, H의 차수는 0트리의 차수 : 트리에 있는 노드의 차수 중 가장 큰 값  ex ) 위 트리의 차수는 2단말 노드 : 차수가 0인 노드. 자식 노드가 없는 노드.  ex ) 위 노드에서는 A, C, E, H가 해당 높이노드의 높이 : 루트에서 노드에 이르는 간선의 수. 노드의 레벨  ex ) B..
연결리스트를 이용한 큐의 구현 | 연결큐 - C 언어
·
C
연결 큐1차원 배열을 이용하기 때문에 크기가 정해져 있는 원형 큐의 문제점을 보완해 나온 것이 연결 리스트를 이용한 연결 큐.원형 큐에 대한 설명은 아래 글로 👇🏻https://tildacoderecorder.tistory.com/102 [ 자료구조 ] enQueue()와 deQueue() 함수를 이용한 원형큐큐의 개념과 구조 큐 : 스택과 다르게 "선입선출"의 구조를 가지고 있다. 먼저 들어간 것이 먼저 나오는 구조. FIFO = First In First Out 순차큐의 문제점을 보완해 나온 것이 원형큐 = 1차원 배열을 사tildacoderecorder.tistory.com 큐의 원소는 연결 리스트의 노드이고, 각 노드를 포인터로 연결한다. front = 첫 번째 노드를 가리키는 포인터 변수 (..
enQueue( )와 deQueue( ) 함수를 이용한 원형큐 - C 언어
·
C
스택에 대한 설명 👇🏻https://tildacoderecorder.tistory.com/101 [자료구조] push( ) 와 pop( ) 함수를 이용한 스택스택의 개념과 구조 : 스택은 마지막에 삽입한 원소는 맨 위에 쌓여 있다가 가장 먼저 삭제 됨 / 후입선출 구조 ( LIFO, Last-In-First-Out ) 스택에서의 삽입 연산 : push 스택에서의 삭제 연산 : pop 기본tildacoderecorder.tistory.com큐의 개념과 구조큐 : 스택과 다르게 "선입선출"의 구조를 가지고 있다. 먼저 들어간 것이 먼저 나오는 구조. FIFO = First In First Out순차큐의 문제점을 보완해 나온 것이 원형큐 = 1차원 배열을 사용하면서 논리적으로 처음과 끝이 원처럼 연결되어 ..
push( ) 와 pop( ) 함수를 이용한 스택 - C 언어
·
C
스택의 개념과 구조: 스택은 마지막에 삽입한 원소는 맨 위에 쌓여 있다가 가장 먼저 삭제 됨 / 후입선출 구조 ( LIFO, Last-In-First-Out )스택에서의 삽입 연산 : push스택에서의 삭제 연산 : pop 기본 설정 #include stdio.h>#define STACK_SIZE 100 int S[STACK_SIZE];int top=-1;cs 100 크기의 S라는 정수형 배열을 만든다. 변수 top은 삽입과 삭제가 일어나는 위치로 현재 스택의 가장 위에 있는 데이터 위치이다.새로운 데이터가 들어오면 배열의 첫번째인 S[0]에 들어오기 때문에 top의 위치는 0으로 바뀌어야 한다. 그렇기에 top의 초기값은 -1이다. 스택의 push( ) 알고리즘 : 스택 S에서 top이 마지막 자료를 ..
선형 리스트 삽입/삭제/탐색/종료 - C 언어
·
C
선형리스트에 데이터를 삽입, 삭제, 탐색하는 함수를 구현한 프로그램. 배열의 크기 100, 데이터의 갯수 n이 기본 설정이다.입력받은 데이터를 크기별로 리스트에 넣을 것이다.  선형리스트는 말그대로 선으로 연결되어 있는 자료구조이다. 따라서 새로운 데이터를 삽입할 때에는 삽입할 위치의 원소를 뒤로, 그 뒤 원소를 또 뒤로 넘겨 한자리씩 이동시켜야 한다. 그렇게 해서 만든 빈 자리에 데이터를 삽입해야 한다.  삭제는 반대로 원소를 삭제하고 생긴 공백을 메우기 위해 뒤에 있던 원소들을 한자리씩 앞당겨야 한다.전체 코드는 아래와 같음. //선형리스트 프로그램#includestdio.h>#includeWindows.h>#define MAX 100 //배열의 크기 int list[MAX] = { 0 };int n..
연결리스트(Linked list) 노드 삭제 - C 언어
·
C
2021.04.09 - [C/자료구조] - [자료구조] C언어 연결리스트(Linked list) 생성 / 출력 [자료구조] C언어 연결리스트(Linked list) 생성 / 출력연결리스트 만들기 "월" "화" "수" "목" "금" 등 요일을 데이터값으로 갖는 연결리스트를 만들어보자. typedef struct node {         char data;         struct node* next;     } ..tildacoderecorder.tistory.com*이 글의 예제와 설명은 연결리스트의 개념에 대해 설명한 위 글을 기반으로 함. 연결리스트에서 노드 삭제하기pre의 다음 노드를 삭제하는 방법typedef struct node {    char data;    struct node* nex..
연결리스트(Linked list) 노드 삽입 - C 언어
·
C
2021.04.09 - [C/자료구조] - [자료구조] C언어 연결리스트(Linked list) 생성 / 출력 [자료구조] C언어 연결리스트(Linked list) 생성 / 출력연결리스트 만들기 "월" "화" "수" "목" "금" 등 요일을 데이터값으로 갖는 연결리스트를 만들어보자. typedef struct node {         char data;         struct node* next;     } ..tildacoderecorder.tistory.com *이 글의 예제는 연결리스트의 생성과 출력에 대해 요약한 전 글과 같은 구조체를 사용. 연결리스트의 첫 번째 노드로 삽입하기char val의 값은 전 글에서 말했듯이 "월"으로 한다. typedef struct node {    char ..