Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Bolojan la presedintie?

Huawei band 8

Statii de benzina DHR

AT Duster 80 asfalt 20 forestier
 fisura/crapatura perete exterior ...

Windows XP Volume License

Noul degresant universal

Imaginea nu poate fi redata - Ero...
 "Mafiotii" revin in forta...

Branșament gaze 2024 sau pom...

Lamurire bec led h7

Preturi momeala ? (dar care e sme...
 Realizare tavan fals rigips

Alternative pod Giurgiu - Ruse

Cat spatiu stocare aveti in total...

Reflux
 

Liste inlantuite

- - - - -
  • Please log in to reply
4 replies to this topic

#1
Omega_Prog

Omega_Prog

    Junior Member

  • Grup: Junior Members
  • Posts: 24
  • Înscris: 01.04.2018
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.
code format


#2
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,444
  • Înscris: 06.01.2007
De ce nu folosesti debuggerul sa vezi comportamentul programului, variabilele ce valori iau.. etc. E de mare ajutor.

#3
GlontzZz

GlontzZz

    Active Member

  • Grup: Members
  • Posts: 1,288
  • Înscris: 08.02.2014
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
Omega_Prog

Omega_Prog

    Junior Member

  • Grup: Junior Members
  • Posts: 24
  • Înscris: 01.04.2018

View PostGlontzZz, 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?
Nu pot adapta codul eliminarii nodurilor cu valoarea 0, am codul eliminarii primului element

#5
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,273
  • Înscris: 24.02.2007
Adaptezi DelPar la noua conditie.

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate