Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Wymagamy użycia własnej implementacji list wskaźnikowych!
- Pewien podręcznik ma na końcu indeks haseł. Z każdym hasłem skojarzony jest wykaz stron, na których pojawia się dane hasło.
- Zadaniem programisty jest stworzenie struktury, która umożliwia dodawanie nowych haseł, dodawanie stron do hasła, jak również usuwanie hasła oraz stron. Hasła mają być uporządkowane alfabetycznie, a strony rosnąco. Dopuszczone są tylko znaki z alfabetu angielskiego. Przez porządek alfabetyczny rozumiemy kolejność leksykograficzną wg kodów ASCII. Strony są liczbami naturalnymi, mniejszymi, lub równymi niż 100 1000 (>0 & <= 100 1000)
- Bardziej szczegółowo:
- •- program w pierwszym wierszu otrzymuje liczbę instrukcji do wykonania.
- •- następnie w każdym wierszu wejścia zapisana jest pojedyncza instrukcja.
- •- program powinien przetworzyć instrukcji jedna po drugiej. Oto dopuszczalne instrukcje:
- -I - insert. Polecenie dodania do spisu hasła razem z wykazem stron tego hasła. Jeśli hasło istniało w spisie należy do wykazu jego stron dodać w odpowiednie miejsca jedynie te strony, które nie istniały jeszcze w tym wykazie.
- -D - delete. Program usuwa podane strony w wykazie stron podanego hasła, albo całe hasło, jeśli nie zostanie nic w wykazie stron.
- -F - find. Program sprawdza, czy hasło występuje na podanej stronie. Zwraca 0, gdy nie występuje lub, gdy nie ma takiego hasła i 1, gdy występuje.
- A - find all . Program zwraca wszystkie strony, gdzie występuje dane hasło, poprzedzając je hasłem lub -1, gdy nie ma takiego hasła.
- P - print. Wyświetl całą listę Format:
- hasło spacja strony po spacjach endline
- itd hasła są posortowane alfabetycznie, a strony rosnąco
- Hasła w indeksie nie mogą się dublować. Dla jednego hasła strony także nie mogą się dublować.
- Formaty poleceń:
- I etykieta liczbaStron strona1 strona2...
- Na początku jest hasło, potem liczba stron, które wstawiamy, a następnie strony oddzielone spacjami. Strony są nie posortowane.
- D etykieta liczbaStron strona1 strona2...
- Na początku jest hasło, potem ilość stron, które usuwamy, a następnie strony oddzielone spacjami. Gdy podana strona nie znajduje się na liście, program ignoruje usunięcie tej strony. To samo w przypadku, gdy próbujemy usunąć hasło, którego nie ma. Strony są nie posortowane
- F etykieta strona
- A etykieta
- P
- Formaty wyników:
- ◦F - zwraca 0 lub 1
- ◦A - zwraca: haslo strona1 strona 2...
- lub -1, gdy nie ma takiego hasła. Strony mają być wyświetlone w porządku rosnącym.
- ◦P - Wyświetl całą listę Format: hasło spacja strony po spacjach i w następnej linii dalej. (Hasła posortowane alfabetycznie, a strony rosnąco). Próba wyświetlenia pustego katalogu - w którym nie ma żadnych haseł nie powoduje żadnej akcji.
- Etykiety (nazwy hasła) składają się z tylko z liter. Strony są liczbami naturalnymi (>0).
- Przykładowe wejście:
- 4
- I Adam 3 12 5 8
- I Adrian 2 45 78
- I Adam 2 5 9
- P
- Wyjście:
- Adam 5 8 9 12
- Adrian 45 78
- Przykładowe wejście2:
- 4
- I Adam 3 12 5 8
- I Adrian 2 45 78
- I Adam 2 5 9
- D Adam 1 9
- P
- F Adam 8
- Wyjście:
- Adam 5 8 12
- Adrian 45 78
- 1
- Przykładowe wejście3:
- 14
- I Adam 4 12 34 56 87
- I Adrian 3 12 23 55
- I Adam 3 12 14 38
- D Adrian 1 12
- A Adam
- F Adrian 12
- P
- I Cdrian 2 56 8
- F Cdrian 8
- P
- D Cdrian 3 56 8 90
- F Cdrian 8
- A Cdrian
- P
- Wyjście:
- Adam 12 14 34 38 56 87
- 0
- Adam 12 14 34 38 56 87
- Adrian 23 55
- 1
- Adam 12 14 34 38 56 87
- Adrian 23 55
- Cdrian 8 56
- 0
- -1
- Adam 12 14 34 38 56 87
- Adrian 23 55
- Zabrania się korzystania z tablic oraz z klas bazujących na tablicach tj. vector.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement