Salt la conținut

SUBIECTE NOI
« 1 / 5 »
RSS
Grupul de firme Paysera Bulgaria ...

Upgrade Ryzen 9 5900X -> Ryze...

Priza aplicata cu intrerupator cu...

Tor cu IP de UK
 Sugestii road trip Moldova + Mara...

Recomandare apartament 3 camere

Casa in constructie la tara, ce s...

Procesor cu pini indoiti, vandut ...
 Examene competența lingvisti...

Probleme vw golf 7

laptop acer nu merge tastatura

De ce ca Freelancer caștigi ...
 La mulți ani @hvz!

La mulți ani @cotzi!

Probleme testosteron scazut

Capac culbutori fisurat
 

Liste inlantuite

- - - - -
  • Vă rugăm să vă autentificați pentru a răspunde
4 răspunsuri în acest subiect

#1
Omega_Prog

Omega_Prog

    Junior Member

  • Grup: Junior Members
  • Mesaje: 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.

Editat de dani.user, 18 septembrie 2018 - 18:30.
code format


#2
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Mesaje: 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
  • Mesaje: 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
  • Mesaje: 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
  • Mesaje: 30.273
  • Înscris: 24.02.2007
Adaptezi DelPar la noua conditie.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

Utilizatori activi: 1

0 membri, 1 vizitatori, 0 utilizatori anonimi

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