자료구조 및 알고리즘/자료구조C 39

05-04 스택을 응용한 사칙 연산기2

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.링크드 리스트 기반의 스택을 이용한 사칙연산기   1)데이터 노드 구현 및 링크드 리스트 스택 2)사칙연산 및 기호를 식별할 데이터 정의3)사칙연산의 필요한 함수원형 선언4)함수 구현

05-03 스택을 응용한 사칙 연산기1

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.스택으로 만드는 사칙연산기 1)개요-우리는 일상적으로 사칙연산을 하는데 연산자가 피연산자 중간에 위치하는 중위표기식을 쓴다. -위의 식을 우리가 사칙연산을 하는데 괄호 안의 식 그리고 나눗셈 및 곱셈을 먼저 풀게 될 것이다. 이것이 우리에겐 익숙한 관습을 익히도록 배워왔다. -하지만 컴퓨터는 괄호나 곱셈,나눗셈의 순서를 이런 관습이 없고 이 문제를 해결하는 알고리즘을  제공해야 식을 풀 수 있다.  -우리가 사용하는 순서에 상관없이 괄호나 곱셈과 나눗셈에 따라 식의 우선 순위가 달라지는 중위표기식은 컴퓨터에게는 알맞는 방식이 아니다. -그래서 컴퓨터는 주로 후위표기식이 이용된다..

05-02 링크드 리스트 기반 스택

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.링크드 리스트 기반의 스택 1)정의   -배열이 아닌 리스트로 만든 스택   -링크드 리스트의 기반의 스택은 배열기반의 스택처럼 용량을 정하지 않아도 된다.2.링크드 리스트 기반 스택의 데이터 노드 및 스택 구현  1)데이터 노드 구현 및 링크드 리스트 스택3.링크드 리스트 기반 스택의 연산 및 함수원형 선언4.링크드 리스트  기반 스택 연산 구현 1)스택 생성 및 소멸 연산2)노드의 생성 및 소멸 연산3)스택에 노드 추가연산4)스택에 노드 제거연산5)그외 연산5.리스트  기반 스택 예제 실습

05-01 배열 기반 스택

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.스택(Stack) 1)정의  -데이터가 마지막에 들어간 데이터가 제일 먼저 나오는 후입선출(Last in -First out)의 형태를 띤  선형 자료구조.  -스택은 네트워크 프로토콜,자동 메모리,되돌리기 등 다양한 기능을 만들 때 쓰인다. -스택은 중요 연산 삽입(Push)와 제거(Pop) 연산 두 가지.    2.베열 기반 스택의 데이터 노드 및 스택 구현1)데이터 노드 구현  -배열 기반의 스택은 배열의 인덱스로 알 수 있기 때문에 이전,다음 노드 같은 포인터가 필요없다.  2)스택 구조체 -스택 구조체는 용량,최상위 노드의 위치,노드배열 이 세가지를 가지고 있어야 한다..

04-01 환형 링크드 리스트

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.환형 링크드 리스트(Circular Linked List)1)정의  -마지막 노드의 테일이 첫번쨰 노드의 주소를 가리키는 형태의 리스트. -시작지점을 알면 끝을 알 수 있고 끝을 알면 반대도 알 수 있다. -모든 노드가 연결되어 하나의 노드에서 모든 노드로 접근이 가능하다. -리스트의 끝에 노드를 삽입하는 연산이 단순 링크드 리스트보다 효율적이다. -노드 추가 연산에서 비어있는 리스트에서 새 노드를 추가한다면 헤드의 다음노드는 헤드 자신이고 헤드의 이전노드도 자신이다. 2.환형 링크드 리스트의 연산 및 함수원형 선언 3.환형 링크드 리스트 연산 구현1)노드 생성 및 삭제 연산..

03-01 더블 링크드 리스트(Doubly Linked List)

*.링크드 리스트(Linked List)의 단점-다음 노드를 가리키려는 포인터 때문에 각 노드마다 추가적인 메모리가 필요하다-특정 위치에 있는 노드에 접근하기 위한 비용이 크고 시간이 많이 걸린다.  1.더블 링크드 리스트(Doubly Linked List)1)정의 :링크드 리스트의 단점을 개선한 자료구조. -링크드 리스트에서 앞에 해당 노드를 가리크는 포인터를 추가적으로 갖고 있는 구조.  2.더블 링크드의 연산 및 함수원형 선언-기존의 링크드 리스트와 차이가 없다.3.더블 링크드 리스트 연산 구현1)노드 생성 및 삭제 연산2)노드 추가 연산-링크드 리스트와 다르게 앞 뒤 노드를 연결하는 연산이 추가적으로 필요하다. 3)노드 탐색 연산4)노드 삭제 연산-더블 링크드 리스트의 삭제는 삭제할 노드의 2개의..

02-01 리스트 : 링크드 리스트(Linked List)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.리스트(List) 1)정의 -목록 형태로 이루어진 데이터형식. -데이터의 첫번쨰 목록을 헤드(head) 마지막을 테일(tale)이라고 한다. 2.리스트와 배열 비교 1)배열 -데이터가 메모리상에 상의 배치가 연속적. -크기가 불변이므로 메모리 낭비가 있다. -빠른 접근이 가능 2)리스트 -데이터가 메모리상에 상의 배치가 비연속적. -크기가 가변이므로 메모리가 없고 관리가 수월하다. -배열보단 느린 접근. 2.링크드 리스트 1)정의 -리스트의 한 종류로 연결 리스트라고도 한다. -데이터와 데이터 간의 주소(포인터)를 담고 있는 노드를 가지고 있다. -각 노드가 한 줄로 연결되어..

01. 자료구조와 ADT

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.자료구조(Data Structure) 1) 정의 -자료구조란 컴퓨터가 데이터를 효율적으로 다룰 수 있게 도와주는 데이터의 보관방법과 데이터에 관한 연산의 총체. 2.종류 1)단순 자료구조(Primitive Data Structure) -long,int,double 같은 일반적인 데이터. 2)복합 자료구조(Non-Primitive Data Structure) -단순 자료구조를 기반으로 만들어낸 배열, 스택, 트리 등과같은 자료구조. -복합 자료구조는 데이터 요소를 순차적으로 연결하는 스택(Stack) 큐(Queue) 같은 선형 자료구조(Linear Data Structure)와..