Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef LISTA_POLJE_H
- #define LISTA_POLJE_H
- #include <iostream>
- using namespace std;
- bool is_Array = true;
- namespace polje {
- ///---------------STRUKTURE-------------///////
- struct tgenre{
- string genre;
- string subGenre;
- };
- struct tgame{
- string key;
- string name;
- string dev;
- tgenre genre;
- int PEGI;
- };
- struct tlista{
- tgame game[100];
- int pointer;
- tlista() : pointer(-1) {}
- };
- ///------------------------------------///////
- ///-------------VARIJABLE--------------///////
- const string notDef = "Funkcija za ovaj odabir nije definirana";
- const string isEmp = "Polje je prazno";
- ///------------------------------------///////
- ///---------------FUNKCIJE-------------///////
- int FirstL(tlista P);
- int EndL(tlista P);
- int NextL(int n, tlista P);
- int Previous(int n, tlista P);
- int Locate(string key, tlista P);
- void InsertL(tlista &element, int n, tlista P);
- void DeleteL(int n, tlista P);
- tgame RetreiveL(int n, tlista P);
- void DeleteAllL(tlista P);
- void InitL(tlista P);
- ///-----------------------------------///////
- ///---------------TIJELA FUNKCIJA---------///////
- int FirstL(tlista P) {
- if (P.pointer <= 0) {
- cout << isEmp;
- return 0; //0 jer nije greška niti dobar odabir
- }
- return EndL(P);
- }
- int EndL(tlista P) {
- return P.pointer;
- }
- int NextL(int n, tlista P) {
- if (P.pointer <= 0) {
- cout << isEmp;
- return 0; //0 jer nije greška niti dobar odabir
- } else if (n < 0 || n >= P.pointer ) {
- cout << notDef;
- return -1; //Vraca grešku
- } else {
- return n+1;
- }
- }
- int PreviousL(int n, tlista P){
- if (P.pointer <= 0) {
- cout << isEmp;
- return 0; //0 jer nije greška niti dobar odabir
- } else if (n <= 0 || n > P.pointer) {
- cout << notDef;
- return -1; //Vraca grješku
- } else {
- return n-1;
- }
- }
- int Locate(string key, tlista P){
- if (P.pointer <= 0) {
- cout << isEmp;
- return 0; //0 jer nije greška niti dobar odabir
- }
- bool found = false;
- for (int i = 0 ; i < P.pointer-1 && !found ; i++) { //Može se i ovak riješiti "bool operator==(tlista lista1, tlista lista2);"
- if (P.game[i].key == key) {
- return i;
- found = true;
- }
- }
- if(!found) return EndL(P); //Ako nije naðen, vraæa vrijednost pokazivaèa
- }
- void InsertL(tgame element, int n, tlista P) {
- if(P.pointer <= 0) {
- cout << isEmp;
- return;
- } else if (n < 0 || n > P.pointer) {
- cout << notDef;
- return;
- }
- for(int i = EndL(P) ; i > n; i--) {
- swap(P.game[i], P.game[i-1]);
- }
- P.game[n] = element;
- P.pointer++;
- }
- void DeleteL(int n, tlista P){
- if (P.pointer <= 0) {
- cout << isEmp;
- return;
- } else if(n >= P.pointer || n < 0) {
- cout << notDef;
- return;
- }
- for(int i = n ; i < P.pointer-1; i++) {
- P.game[i] = P.game[i+1];
- }
- P.pointer--;
- }
- tgame RetreiveL(int n, tlista P){
- if (n >= FirstL(P) && n < P.pointer) {
- return P.game[n];
- } else {
- cout << notDef;
- }
- }
- void DeleteAllL(tlista P){
- P.pointer = 0;
- }
- void InitL(tlista P){
- P.pointer = 0;
- }
- }
- ///------------------------------------///////
- #endif // LISTA_POLJE_H
Advertisement
Add Comment
Please, Sign In to add comment