[자료구조/C언어]-⑫ 자료구조 트리/트리 삭제,삽입
2017. 4. 20. 22:01
IT 공부/자료구조
트리 자료가 선형구조가 아닌 계층적인 구조를 가지고 있을 때 표현하는 자료구조입니다. 트리의 구조는 나무가 뿌리에서 시작하여 여러개의 가지를 뻗어가는 모양입니다. 루트노드를 제외한 노드들은 서브 트리라고 불립니다. 각각의 노드들은 하위 자식들을 가질 수 있습니다. 또한 같은 층에 위치하는 노드들은 형제관계 이고, 자식이 없는 노드는 단말노드라고 불립니다. 차수(degree) 어떤 노드가 가지고 있는 자식 노드의 개수 레벨 트리의 각 층에 번호를 매기는 것으로 루트의 레벨은 1부터 시작하여 점점 증가합니다. (루트의 레벨이 0이라고 나온 책도 있는데 이부분은....) 저는 트리구조의 가장 기본형인 이진트리를 구현해보았습니다. #include #include /* run this program using t..
[자료구조/C언어]-⑩ 자료구조 스택/스택 계산기 만들기
2017. 4. 20. 21:23
IT 공부/자료구조
#include #include #include typedef struct stack{ char data; struct stack *link; }stack; typedef struct int_stack{ int data; struct int_stack *link; }int_stack; stack *top; int_stack *Top; int_stack *create(); int Pop(); void Push(int); void Is_empty(); stack *create_stack(); void print_stack(); char pop(); void push(char ); int is_empty(); void invert(char *,char *); //>> (2+3)-4 23+4- void main..
[자료구조/C언어]-⑨ 자료구조 스택/스택 괄호 검사
2017. 2. 16. 10:00
IT 공부/자료구조
스택을 이용한 괄호검사 스택을 이용하는 대표적인 예제 중 하나입니다. 우리가 계산을 할 때 [].{}.() 등등 여러가지 괄호들이 존재합니다. 이 괄호가 쌍이 맞는지 같은 타입인지 등등을 검사할때 스택을 사용합니다. 조건 왼쪽 괄호와 오른쪽 괄호의 개수가 같아야 한다. 같은 타입의 왼쪽 괄호는 오른쪽 괄호보다 먼저 나와야 한다. 서로 다른 타입의 왼쪽 괄호와 오른쪽 괄호 쌍은 서로를 교차하면 안 된다. 만약 이 조건들을 만족하지 않는다면 컴파일러는 잘못된 프로그램으로 인지해줍니다. 그렇다면 어떤식으로 스택을 이용하면 될까요 일단 여는 괄호가 나오면 ( '(', '{', '[' ) 스택에 push() 해줍니다. 그리고 닫는 괄호가 나오면 바로 최근에 들어온 여는 괄호를 pop() 해줍니다. 여기서 닫는 괄..
[자료구조/C언어]-⑧ 스택 push/pop 스택구현
2017. 2. 16. 09:46
IT 공부/자료구조
스택(Stack) 스택은 최근에 들어온 데이터가 가장 먼저 빠져나갑니다. 이러한 입출력 형태를 LIFO(후입선출)이라고 부릅니다. 스택은 배열과 연결리스트 두가지 형태로 구현할수 있습니다. 배열로 구현한다면 쉽게 사용할 수 있지만 스택의 크기가 한정되기 때문에 저는 연결리스트로 구현해 보았습니다. 노드는 head포인터를 이용하여 모든 자료에 접근하였습니다. 스택은 Top포인터를 이용하여 모든 자료에 접근할 수 있습니다. 스택의 기본연산 create() : 스택을 생성한다. push() : 스택에 데이터 추가 pop() : 스택에서 데이터를 꺼냄 is_empty(): 스택이 비었는지 확인 push()/pop 구조 A B C D는 모두 연결리스트로 연결되있으며 push()를 할때는 리스트의 맨 앞에 추가를 ..