Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Platforma electronica de eviden&#...

Cot cu talpa montat stramb in per...

Sfat achizitie sistem audio pentr...

tavan fals rigips
 Ce preferați: produse mai scumpe ...

Demagnetizare (minimala) ori ba?

Cum pot sa vad pe un proiector pr...

Joc Drone
 Dropshipping

Sfat achizitie AC Gree Fairy vs P...

MONITOR LG fara sonor !

Batalia pentru Bucuresti - ND, Fi...
 Identificare font

problema ping in jocuri online

Problema calculator

Samsung Galaxy A35
 

Citire Ordonata Liste Simplu Inlantuite

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

#1
Cognitivul

Cognitivul

    Junior Member

  • Grup: Junior Members
  • Posts: 55
  • Înscris: 27.07.2017
Salut!Incerc sa fac o citire ordonata de liste simplu inlantuite.Am pornit de la idee ca toate elementele existente in lista la un pas sunt ordonate crescator.Doar ca nu functioneaza pentru aparitii multiple si anumite cazuri critice(elemente cu aparitii multiple).Nu-mi dau seama de ce.O parere m-ar ajuta.


   Suparator este ca pentru cazul -8,8,1,2,3,4,5,6  intra intr-o bucla infinita.Deasemenea daca sunt elemente care se repeta,acestea au o singura aparitie in lista.
   Multumesc!


TLista CitireOrdL(size_t *lg) /* construieste lista cu elemente citite */
{ TLista L = NULL, u, aux;
  int x;
  char ch;
  TLista p;
  for(*lg = 0; scanf("%i", &x) == 1; )
  {
    aux = AlocCelula(x);    /* incearca inserarea valorii citite */
    if(!aux) return L;   /* alocare esuata => sfarsit citire */
    if(L == NULL)
  {L = aux;
   p=L;
  }
    else
   {
    if(p->info > aux->info)
{
  {aux->urm=p;
   p=aux;
  }

  
    if(L->urm == NULL)
{L->urm=aux;
  p=L;
}
    else ;
}  
    else
   {
    for( ; L->urm != NULL ; L=L->urm )
  {
    if(aux->info>=L->info && aux->info<=L->urm->info)
{aux->urm=L->urm;
  L->urm=aux;
}
  }
if(aux->info>L->info)
L->urm=aux;

   }
   }
  
    (*lg)++;
  
  }

#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
for(*lg = 0; scanf("%i", &x) == 1; )

Tu intelegi ce faci?

In afara de linia asta, stii cat de anapoda e codul tau? Din cod imi dau seama ca modelul tau mental al programarii e ca o farfurie de spaghete bolognese.

Imi doresc sa te ajut, dar nici nu stiu de unde sa incep, atat de multa varza e acolo.

Fa un pas inapoi, si scrie doar o functie main aproape goala in care afisezi "hello world" si atat. Hai sa o luam de la big bang cu programarea asta.

Te astept cu codul, si apoi facem pas cu pas.

#3
Cognitivul

Cognitivul

    Junior Member

  • Grup: Junior Members
  • Posts: 55
  • Înscris: 27.07.2017
#inlcude <stdio.h>

int main()
{
printf("hello world");
return 0;
}

Edited by Cognitivul, 23 March 2019 - 22:19.


#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Perfect. Acum declara o structura "lista simplu inlantuita". Doar structura de date.

Si fa-ti codul sa compileze.

Si repara: in cod zici ca main returneaza un intreg, dar la sfarsitul lui main nu ai niciun return. Adauga return 0; acolo.

#5
Cognitivul

Cognitivul

    Junior Member

  • Grup: Junior Members
  • Posts: 55
  • Înscris: 27.07.2017
typedef struct ListaSimpluInlantuita
{ int info;
  struct celula * urm;
} TLista;

Edited by Cognitivul, 23 March 2019 - 22:23.


#6
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Gresit.

Membrul urm trebuie sa fie de acelasi tip ca lista insasi. O lista inlantuita e o structura de date izomorfa.

Incearca sa repari conform cu ce am spus, si vino mereu cu codul complet, inclusiv main, care compileaza, nu franturi.

E ok sa nu intelegi ce spun. Incearca totusi.

#7
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,025
  • Înscris: 24.02.2006

View PostCognitivul, on 23 martie 2019 - 22:20, said:

typedef struct ListaSimpluInlantuita
{ int info;
  struct celula * urm;
} TLista;
dac fol prim tre lit din cuv nu ins ca ai ale o den pot pen var.

foloseste denumiri mai clare pentru variabile.

#8
Cognitivul

Cognitivul

    Junior Member

  • Grup: Junior Members
  • Posts: 55
  • Înscris: 27.07.2017
typedef struct ListaSimpluInlantuita
{ int info;
  struct ListaSimpluInlantuita * urm;
} TLista;

#9
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostCognitivul, on 24 martie 2019 - 08:26, said:

typedef struct ListaSimpluInlantuita
{ int info;
  struct ListaSimpluInlantuita * urm;
} TLista;
Corect, dar gresit:

View PostOriginalCopy, on 23 martie 2019 - 22:27, said:

vino mereu cu codul complet, inclusiv main, care compileaza, nu franturi.

Trebuie sa vii mereu cu codul complet, nu cu franturi. Am 15+ ani experienta de ajutat oameni si stiu ce fel de probleme in indrumare evit prin asta.

Fa ce spun si lasa-te ajutat.

Edited by OriginalCopy, 24 March 2019 - 09:07.


#10
Cognitivul

Cognitivul

    Junior Member

  • Grup: Junior Members
  • Posts: 55
  • Înscris: 27.07.2017
Nu mai conteaza,i-am dat de cap.Sortare reusita.Multumesc pentru intentie.Scuza-mi lipsa de implicare,dar ma grabesc.Am un examen in scurt timp.

#11
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018
Dar dupa examen, poti sa pui tot codul , ca nu are kilograme

#12
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostBraviaAmpero, on 24 martie 2019 - 12:31, said:

Dar dupa examen, poti sa pui tot codul , ca nu are kilograme
Probabil nu il intereseaza sa invete programare, ci doar sa treaca examenul. Sau are impresia ca daca trece examenul, stie programare.

View PostCognitivul, on 24 martie 2019 - 12:12, said:

Nu mai conteaza,i-am dat de cap.Sortare reusita.Multumesc pentru intentie.Scuza-mi lipsa de implicare,dar ma grabesc.Am un examen in scurt timp.
Conteaza daca vrei sa devii profesionist. Sunt oameni pe aici care lucreaza in domeniu de 10+ ani. Ei iti pot da sfaturi nu doar despre functionalitatea codului, dar si de stil, claritate, flexibilitate, modularizare mai buna, etc.

Lucruri care nu se invata in acel curs de incepatori.

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 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