Programming/자료구조
-
이중 연결 리스트 - python3Programming/자료구조 2020. 3. 5. 03:35
이중 연결 리스트 이중 연결 리스트는 이전 노드를 가리키는 포인터, 다음 노드를 가리키는 포인터를 가지고 있다. 양방향으로 연결되어 있어 노드를 탐색하는데 있어 양쪽 모두 가능하다. 이중 연결 리스트 실습 - 노드 삽입 class Node: # 이전 노드를 가리키는 prev, 다음 노드를 가리키는 next def __init__ (self,data,prev=None,next=None): self.prev = prev self.data = data self.next = next class NodeModule: def __init__ (self,data): self.head=Node(data) self.tail = self.head def add(self,data): # node에 head가 없다면 if s..
-
단일 연결 리스트 - python3Programming/자료구조 2020. 2. 27. 17:27
연결 리스트(Linked List) 란 연결 리스트 == 링크드 리스트 각 노드가 데이터와 포인터를 가지고 연결되어 있는 구조 연결 리스트 연길 리스트에서는 노드와 포인터가 있다. 노드 : 데이터의 값과,포인터로 구성되어 있음 포인터 : 각각의 노드 안에서 다음 노드로 가거나 이전 노드와의 연결 정보를 가지고 있음 연결 리스트 특징 배열과는 다르게 크기가 고정되어 있지 않아 삽입/삭제가 용이하다. 탐색시 모든 노드를 처음부터 탐색하기 때문에 탐색시간이 길어질 수 있다. 데이터의 추가 삭제가 많을 경우에는 연결 리스트를 사용하는게 유리하고, 검색/정렬을 자주할 땐 배열이 유리하다. 중간 데이터를 삭제시에, 삭제한 노드의 전 노드와 앞 노드를 다시 연결해줘야하는 과정이 필요 연결 리스트 종류 단일 연결 리스..
-
Stack(스택) - python3Programming/자료구조 2020. 2. 26. 22:56
스택이란 데이터를 제한적으로 접근할 수 있는 구조 한 쪽에서만 데이터를 put(넣기), pop(빼기)할 수 있는 구조 가장 마지막에 들어온 데이터가 가장 먼저 나가는 구조 스택구조 스택은 LIFO(Last-In, First-out) , FILO(First-In, Last-out) 데이터 관리 방식을 이용 LIFO : 마지막에 넣은 데이터가 가장 먼저 나감 FILO : 처음 넣은 데이턱 가장 나중에 나감 주요기능 push() : 데이터를 스택에 삽입 pop() : 데이터를 스택에서 추출 스택의 장점과 단점 장점 구조가 단순, 구현이 쉽다. 데이터의 저장/읽기 속도가 빠름 단점 데이터 크기를 미리 지정해야한다. 위와 같은 이유로 인해 저장공간이 낭비가 발생할 수 있다. 파이썬 pop() 함수를 사용해서 스택..
-
Queue(큐) - python3Programming/자료구조 2020. 2. 25. 21:26
큐 구조 먼저 들어간 데이터가 먼저 나오는 선입선출 자료구조를 큐라고 한다. 예를 들어 먼저 줄을 선 사람이 먼저 물건을 사고 나오는 것과 같다 FIFO(First-In, First-Out) 방식으로 스택(Stack)과 반대 큐 용어 put(insert) : 큐에 자료를 넣는 것 get(delete) : 큐에서 자료를 꺼내는 것 front(head) : 데이터를 get할 수 있는 위치를 가리킴 rear(tail) : 데이터를 put할 수 있는 위치를 가리킴 큐 => 오버플로우(Overflow), 언더플로우(Underflow) 오버플로우 : 큐가 꽉 차있는 상태에서 데이터가 들어오면 오버플로우 발생 ( put을 할 수 없는 상태 ) 언더플로우 : 오버플로우의 반대되는 개념으로 큐가 비어있을때 get을 하게..