목록
반응형
Programming/Data Structure (8)
반응형
7JeY world
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970MAX_QSIZE = 10class CircularQueue : def __init__(self): self.front = 0 self.rear = 0 self.items = [None] * MAX_QSIZE def isEmpty(self): return self.front == self.rear def isFull(self): return self.front == (self.rear+1)%MAX_QSIZE def clear(self): self.front = self.re..
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071class Stack: #리스트를 이용하여 스택 생성 def __init__ (self): self.top = [] #스택의 크기를 출력 def __len__(self): return len(self.top) #스택 내부 자료를 string으로 변환하여 반환 def __str__(self): return str(self.top[::1]) #스택 초기화 def clear(self): self.top=[] #PUSH def push (self, item): self.top...
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788class CList: class Node: def __init__(self, item, link): # 노드 생성자 self.item = item # 항목 self.next = link # 다음 노드 레퍼런스 def __init__(self): # 원형 연결 리스트 생성자 self.last = None # 마지막 노드를 가리킴 self.size = 0 def no_items(self): return self...
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990class DList: class Node: def __init__(self, item, prev, link): # 노드 생성자 self.item = item # 항목 self.prev = prev # 앞노드 레퍼런스 self.next = link # 뒤노드 레퍼런스 def __init__(self): # 이중 연결 리스트 생성자 # head, tail, 항목수로 구성 # 두 더미노드(head, tail..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 class SList: class Node: def __init__(self, item, link): #노드 생성자 self.item = item self.nex..
이중 연결 리스트를 이용한 덱(Deque) 덱은 양쪽 끝에서 삽입/삭제 연산이 가능해야 하기 때문에 다음과 같이 왼쪽 링크 필드와 오른쪽 링크 필드를 가지는 노드를 사용하는 이중 연결 리스트를 이용하여 구현한다. class DQNode{ char data; DQNode rlink; DQNode llink; } class DQueue{ DQNode front; DQNode rear; public DQueue() { front = null; rear = null; } public boolean isEmpty() { return (front == null); } public void insertFront(char item) { DQNode newNode = new DQNode(); newNode.data = ..
Stack (1) 연결 자료구조 방식을 이용한 스택의 구현 스택의 초기상태(공백스택)는 참조변수 top을 null로 설정하여 표현 연결 자료구조 방식을 이용하여 스택을 구현하면 스택의 원소는 연결리스트의 노드가 된다. 스택에 원소를 삽입할 때 마다 연결 리스트에 노드를 하나씩 할당한다. 스택 원소의 순서는 연결 리스트 노드의 링크를 사용하여 표현하고, 스택의 top은 참조변수 top을 사용한다. 중위 표기 수식을 후위 표기 수식으로 변환하는 연산을 수행하는 프로그램을 구현 interface Stack { boolean isEmpty(); void push(char item); char pop(); void delete(); char peek(); } class StackNode { char data; S..
Queue 1. Queue 연산 enQueue(item) : Queue의 뒤쪽(rear 다음)에 원소를 삽입 deQueue() : Queue의 앞쪽(front)에서 원소를 삭제하고 반환 createQueue() : 공백상태의 Queue를 생성하는 연산 isEmpty() : Queue가 공백상태인지 확인 isFull() : Queue가 포화상태인지 확인 Qpeek() : Queue의 앞쪽(front)에서 원소를 삭제 없이 반환 2. 종류 1) 선형 Queue 삽입(sudo) enQueue(item) if(isFull()) then Queue_Full(); else{ rear rear -> next = newNode; LQ -> rear = newNode; } } element deQueue(){ Node ..