|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2010
Messaggi: 50
|
[C++]Implementazioni strutture dati
modifica discussione VEDETE L'ULTIMO MIO POST
Salve a tutti ![]() cerco qualsiasi esempio, guide, ecc di programmi in c++ che implementano ordinamenti e strutture dati quali liste (linkate e doppiamente linkate), alberi, pile, code e grafi. Specifico che conosco bene a livello teorico queste strutture e tipi di dato e voglio imparare ora ad implementarle. grazie in anticipoooo Ultima modifica di InformaticoRC : 24-09-2011 alle 19:59. Motivo: urgente |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 2267
|
Prova a guardare in Thinking in C++ volumi 1 e 2 liberamente reperibili al seguente indirizzo:
http://www.mindview.net/Books/TICPP/...ngInCPP2e.html (ad es. volume 2 capitolo 7 - Generic containers). Se vuoi la traduzione italiana: http://sites.google.com/site/pensareinc/ Inoltre ti consiglio di consultare la documentazione della STL (Standard Template Library).
__________________
Concluso con:... |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Apr 2010
Messaggi: 50
|
Grazie mille!!!
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Apr 2010
Messaggi: 50
|
Ragazzi come implemento questi pseudocidici degli algoritmi di selectionSort, insetionSort e bubbleSort sul programma che ho postato? mettiamo che io voglia ordinare la lista. Mi serve vedere proprio l'implementazione dell'ordinamento aggiunta a questo programma.
pseudocodici: SELECTION SORT(array A): for k=0 to n-2 do m <- k+1 for j=k+2 to n do if(A[j]<A[m]) then m <- j scambia A[m] con A[K+1] INSERTION SORT(array A): for k=1 to n-1 do x<-A[k+1] for j=1 to k+1 do if(A[j]>x)then break if(j<K+1)then for t=k downto j do A[t+1] <- A[t] A[j] <- x BUBBLE SORT(array A): for i=1 to (n-1) for j=2 to (n-i+1) if(A[j-1]>A[j])then scambia A[j-1] e A[j] if(non ci sono stati scambi)then break ----------------------------------------------------- PROGRAMMA LISTA LINKATA #include <iostream> using namespace std; class lista { private: int numero; lista *successivo; public: lista(); void set(int num) {numero = num;}; int get() {return numero;}; void pointTo(lista *point) {successivo = point;}; lista *getnext(){return successivo;}; }; void inserisci(int num); void visualizza(); lista *start; lista *nuovo; lista *ultimo; lista::lista() { numero = 0; successivo = NULL; } int main() { int scelta, num; do { cout << "################## LISTA LINKATA ####################\n\n\n"; cout << "Inserisci il numero che corrisponde all'operazione che vuoi compiere: \n\n\n"; cout << "Se vuoi inserire un elemento premi 1\n\n"; cout << "Se vuoi visualizzare gli elementi inseriti premi 2\n\n"; cout << "Se vuoi uscire premi 3\n\n\n"; cout << "Digita la tua scelta-> "; cin >> scelta; switch(scelta) { case 1: nuovo = new lista; cout << "\n\nInserisci il numero-> "; cin >> num; inserisci(num); system ("pause"); system ("cls"); break; case 2: visualizza(); system ("pause"); system ("cls"); break; default: cout << "\nINSERISCI UN VALORE CORRETTO\n\n"; break; } }while(scelta != 3); return 0; } void inserisci (int num) { nuovo = new lista; nuovo->set(num); if (start == NULL) start = nuovo; else ultimo->pointTo(nuovo); ultimo = nuovo; } void visualizza () { if (start== NULL) cout << "\n\n\nNon ci sono elementi da visualizzare\n\n\n"; else { nuovo = start; cout << "\n\nElementi inseriti:\n\n"; do { cout << "\n\n "<< nuovo->get( )<<"\n\n"; nuovo= nuovo->getnext( ); }while ( nuovo!= NULL); }; } grazieeeee |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:21.