powrót

Ćwiczenia 8 - Stosy i kolejki

Main

STRUCT-STACK S
PUSH(S,1)
PUSH(S,2)
WRITE(S)
PUSH(S,3)
WRITE(S)
WRITE(STACK-EMPTY(S))
WRITE(POP(S))
WRITE(POP(S))
WRITE(S)
WRITE(POP(S))
WRITE(POP(S))
WRITE(S)
WRITE(STACK-EMPTY(S))

STRUCT-QUEUE Q
ENQUEUE(Q,1)
ENQUEUE(Q,2)
WRITE(Q)
ENQUEUE(Q,3)
WRITE(Q)
WRITE(QUEUE-EMPTY)
WRITE(DEQUEUE(Q))
WRITE(DEQUEUE(Q))
WRITE(Q)
WRITE(DEQUEUE(Q))
WRITE(DEQUEUE(Q))
WRITE(Q)
WRITE(QUEUE-EMPTY)

Stos (0,5 pkt termin: 20:59:00 03-12-2015)

STRUCT-STACK
	[n]
	top = 0
STACK-EMPTY(S)
	if S.top = 0
		return true
	else
		return false
PUSH(S,x)
	S.top = S.top + 1
	if S.top > n
		error "przepełnienie"
	else
		S[S.top] = x
POP(S)
	if S.top = 0
		error "niedomiar"
	else
		S.top = S.top - 1
	return S[S.top + 1]

Kolejka (0,5 pkt termin: 20:59:00 03-12-2015)

STRUCT-QUEUE
	[n]
	head = 1
	tail = 1
QUEUE-EMPTY(Q)
	if Q.head = Q.tail
		return true
	else
		return false
ENQUEUE(Q,x)
	if Q.tail = Q.length
		if Q.head = 1
			error "przepełnienie"
		else
			Q[Q.tail] = x
			Q.tail = 1
	else
		if Q.head = Q.tail + 1
			error "przepełnienie"
		else
			Q[Q.tail] = x
			Q.tail = Q.tail + 1
DEQUEUE(Q)
	if Q.head = Q.tail
		error "niedomiar"
	else
		x = Q[Q.head]
		if Q.head = Q.length
			Q.head = 1
		else
			Q.head = Q.head + 1
		return x
  1. Scalanie dwóch stosów
  2. Scalanie dwóch kolejek
  3. Rozmiar kolejki
  4. Implementacja stosu przy pomocy dwóch kolejek (2 pkt termin: 20:59:00 03-12-2015 lub zad.5)
  5. Implementacja kolejki przy pomocy dwóch stosów (2 pkt termin: 20:59:00 03-12-2015 lub zad.4)