Liste inlantuite
Last Updated: Sep 18 2018 18:52, Started by
Omega_Prog
, Sep 17 2018 22:26
·
0
#1
Posted 17 September 2018 - 22:26
Buna, am de eliminat un nod din lista. Poftim codul fara eliminare:
#include <iostream> #include <conio.h> using namespace std; struct nod // Declararea structurii unui nod al listei { int inf; nod* urm; }; typedef struct nod* Lista; Lista Prim, p; int x; void Adaug(Lista& Prim, Lista p, int x) // Inserarea unui nou nod { Lista q = new nod; q->inf = x; if (!p) { q->urm = Prim; Prim = q; } else { q->urm = p->urm; p->urm = q; } } void Afisare(Lista Prim) // Parcurgerea listei cu ĂŽnceputul indicat de pointerul Prim { Lista v; for (v = Prim; v; v = v->urm) cout << v->inf << " "; cout << endl; } void Elimin(Lista& Prim, Lista p) // Stergerea unui nod din lista { Lista q; if (p) { q = p->urm; if (q) { p->urm = q->urm; delete q; } } else { q = Prim; if (q) { Prim = Prim->urm; delete q; } } } void DelPar(Lista Prim) // Determinarea numerelor pare din câmpurile inf ale nodurilir { Lista v; v = Prim; while (v->urm) { if (v->urm->inf % 2 == 0 && v != NULL) Elimin(Prim, v); else v = v->urm; } } int main() { cout << "Crearea unei liste pana la citirea valorii 0" << endl; cout << "dati un numar:"; cin >> x; while (x) // Depunerea numerelor citite de la tastatură ĂŽn lista nou creată { Adaug(Prim, NULL, x); cout << "dati un numar:"; cin >> x; } cout << "Lista initiala:" << endl; Afisare(Prim); cout << endl; //Afisarea datelor din lista initiala 7 DelPar(Prim); Elimin(Prim, NULL); // Modificatea listei iniţiale cout << "Lista modificata:" << endl; Afisare(Prim); cout << endl; //Afisarea datelor din lista modificata getch(); return 0; } si am aceasta conditie: Scrieţi o funcţie cu un singur parametru (adresa primului nod dintr-o listă simplu ĂŽnlănţuită) care să şteargă din lista specificată toate nodurile care au ca informaţie valoarea 0. Dupa ideie codul asta ar trebui sa mearga void Elimin(Lista& Prim, Lista p) // Stergerea unui nod din lista { Lista q; if (p) { q = p->urm; if (q) { p->urm = q->urm; delete q; } } else { q = Prim; if (q) { Prim = Prim->urm; delete q; } } }dar nu pot sa-l adaptez sub codul meu, ajutati-ma va rog.
Edited by dani.user, 18 September 2018 - 18:30.
|
#2
Posted 17 September 2018 - 23:08
De ce nu folosesti debuggerul sa vezi comportamentul programului, variabilele ce valori iau.. etc. E de mare ajutor.
|
#3
Posted 17 September 2018 - 23:24
1. Foloseste tag-urile pentru postarea codului (nu se intelege nimic, comentariile par aparute din cer, e imposibil de descifrat).
2. Ce nu iese, mai exact? Ce nu poti adapta? Intelegi ce face codul, precum si logica din spatele lui? |
#4
Posted 17 September 2018 - 23:26
GlontzZz, on 17 septembrie 2018 - 23:24, said:
1. Foloseste tag-urile pentru postarea codului (nu se intelege nimic, comentariile par aparute din cer, e imposibil de descifrat). 2. Ce nu iese, mai exact? Ce nu poti adapta? Intelegi ce face codul, precum si logica din spatele lui? |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users