online: 3; azi: 947; total: 51402 Manual clasa a xi a - Implementarea structurilor de date - Lista liniara

Probleme Rezolvate



Manual clasa a Xi a

Implementarea structurilor de date

Lista liniara

Se creează o listă în care ordinea de acces este cea în care sunt citite numerele. Se mai citesc de la tastatură două numere x şi y. Se inserează în listă numărul y înaintea numărului x.
# include < iostream >
# include < fstream >
using namespace std ;
struct Node {
int data;
Node * next ;
};
void insertBefore ( Node * & head , int x, int y) {
Node * newNode = new Node ;
newNode ->data = y;
newNode -> next = NULL ;
Node * curr = head ;
Node * prev = NULL ;
while ( curr != NULL && curr ->data != x) {
prev = curr ;
curr = curr -> next ;
}
if ( prev == NULL ) {
newNode -> next = head ;
head = newNode ;
}
else {
prev -> next = newNode ;
newNode -> next = curr ;
}
}
void printList ( Node * head ) {
Node * curr = head ;
while ( curr != NULL ) {
cout << curr ->data << " " ;
curr = curr -> next ;
}
cout << endl ;
}
int main () {
Node * head = NULL ;
ifstream fin ( "input.txt" ) ;
int x, y, num;
while (fin >> num) {
Node * newNode = new Node ;
newNode ->data = num;
newNode -> next = head ;
head = newNode ;
}
fin. close ();
cout << " Enter x and y: " ;
cin >> x >> y;
insertBefore ( head , x, y);
printList ( head );
return 0 ;
}