Algoritmi in C++ (1) da completare Array Stack Code Liste concatenate
Array Un array (o anche detto vettore) è costituito da un numero fisso di dati memorizzati in maniera contigua (a[0], a[1], … ,a[n]) ed indirizzabili attraverso un indice a[i]. // stampa tutti i numeri primi minori di 1000 const int N = 1000; main () { int i, j, a[N+1]; // dichiarazione variabili a[1] = 0; for (i=2; i<=N; i++) a[i] = 1; // inizializzazione for (i=2; i<=N/2; i++) for (j=2; j<=N/2; j++) a[i*j] = 0; // metti a 0 i numeri non primi for (i=1; i<=N; i++) if (a[i]) cout << i << ´´; // stampa if (a[i]!= 0) cout << ´\n´; }
Stack class Stack () { private: intemType *stack; // punt. a itemType def. altrove int p; pubblic: Stack(int max=100) // Costruttore {stack = new itemType[max]; p = 0;} ~Stack() //distruttore {delete stack;} inline void push(itemType v) // metodo push() {stack[p++] = v;} inline void pop() // metodo pop() {return stack[p-1];p--;} inline void empty() // metodo empty() {return !p;} }
Code class Queue () { private: intemType *queue; // es. typedef int itemType int head=0,tail=0,size; pubblic: Queue(int max = 100) // Costruttore queue = new itemType[max]; size = max; head = 0; tail = 0; } ~Queue() //distruttore {delete queue;} . . .
Code . . . inline void put(itemType v) // inline velocizza la { // chiamata del metodo queue[tail++] = v; if (tail >= size) tail = 0; } inline void get() { itemType t = queue[head--]; if (head >= size) head = 0; return t; inline void empty() {return head==tail;}