Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Osnovne operacije sa dinamickom strukturom podataka oblika jednostruko spregnute liste 2

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Osnovne operacije sa dinamickom strukturom podataka oblika jednostruko spregnute liste 2

[ Pregleda: 2655 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ftn
Gojko Miljkovic
Indjija

Član broj: 80589
Poruke: 3
*.9.EUnet.yu.



Profil

icon [Zadatak] Osnovne operacije sa dinamickom strukturom podataka oblika jednostruko spregnute liste 210.01.2006. u 13:53 - pre 179 meseci
/*Imam problem sa ispisom liste inace program treba da radi sledece:
Treba da demonstrira realizaciju osnovnih operacija sa dinamickom strukturom podataka oblika jednostruko
spregnute liste. Elementi liste sastoje se od dva polja:podatak koji predstavlja proizvoljan karakter i
pokazivac na sledeci element liste.Treba realizovati sledece operacije sa ovom listom:unos novog karaktera,
umesto jednog treba upisati drugi,trazenje karaktera u listi i brisanje karaktera iz liste*/

# include<stdio.h>
# include<stdlib.h>
# include<malloc.h>
# include<curses.h>
//strukrura podataka koja predstavlja slog(element) liste
typedef struct cvor{
char znak;
struct cvor *sledeci;
}Tcvor;
//Definicija novog tipa podataka koji predstavlja pokazivac na slog liste
typedef Tcvor *Pcvor;

//Prototipovi funkcija
void Inicijalizacija(Pcvor *glava);
void Osnovni_meni(char *izbor);
void Ispisi(char *izbor);
void Unos(Pcvor *glava);
void Brisanje(Pcvor *glava);
void Listanje(Pcvor *glava);
void Oslobodi_memoriju(Pcvor *glava);

main()
{
//Deklaracija promenljivih
Pcvor glava;
char izbor;

Inicijalizacija(&glava);
do{
Osnovni_meni(&izbor);
switch(izbor)
{
case'1':Ispisi(&izbor);
Unos(&glava);
break;
case'2':Ispisi(&izbor);
Brisanje(&glava);
break;
case'3':Ispisi(&izbor);
Listanje(&glava);
case'4': ;
}
}while(izbor!='4');
Oslobodi_memoriju(&glava);
}
void Inicijalizacija(Pcvor *glava)
{
*glava=NULL;
}
void Osnovni_meni(char *izbor)
{
char c;
//Deklaracija lokalnih promenljivih
//unsigned x,y;
printf("1)Dodaj 2)Brisi 3)Listaj 4)Kraj?\n");
do{
scanf("%c",&c);
*izbor=c;
}while((*izbor>'4')||(*izbor<'1'));
}
void Ispisi(char *izbor)
{
char c;
*izbor=c;
printf("1)dodaj 2)Brisi 3)Listaj 4)Kraj ? %c",*izbor);
}
void Unos(Pcvor *glava)
{
//Deklaracija lokalnih promenljivih
Pcvor tek,pret,novi;
char c;
*glava=NULL;
//Unos novog znaka
printf(" Unesite znak\n");
scanf("%c",&c);
novi=(Tcvor *)malloc(sizeof(Tcvor));
//printf(" Unesite znak\n");
//scanf("%c",&c);
novi->znak=c;
novi->sledeci=NULL;

//Unos novog sloga u listu
if(*glava==NULL)
{
*glava=novi;
return;
}
tek=*glava;
pret=*glava;
while(tek!=NULL)
{
pret=tek;
tek=tek->sledeci;
}
pret->sledeci=novi;
}
void Brisanje(Pcvor *glava)
{
//Deklaracija lokalnih promenljivih
Pcvor tek,pret;
char c;
printf("Unesite znak koji hocete da obrisete\n");
scanf("%c",&c);

//Utvrdjivanje da li je lista prazna
if(*glava==NULL)
{
printf("1)dodaj 2)Brisi 3)Listaj 4)Kraj ?");
printf(" Lista je prazna ");
return;
}
//Trazenje znaka u listi
tek=*glava;
pret=*glava;
while((tek!=NULL) && (tek->znak!=c))
{
pret=tek;
tek=tek->sledeci;
}
//Utvrdjivanje da li je znak u listi i ako jeste njegovo brisanje
if(tek==NULL)
{
printf("Znaka nema u listi\n");
}else{
if(tek==*glava)
{
*glava=tek->sledeci;
tek->sledeci=NULL;
}else{
pret->sledeci=tek->sledeci;
tek->sledeci=NULL;
}
free(tek);
}
}
void Listanje(Pcvor *glava)
{
//Deklaracija lokalnoh promenljivih
Pcvor tek;

//Prvo se utvrdjije da li je lista prazna
if(*glava==NULL)
{
printf("1)dodaj 2)Brisi 3)Listaj 4)Kraj ? %");
printf(" Lista je prazna");
return;
}
//Ako lista nije prazna vrsi se prikaz elemenata liste
printf(" Prikaz liste\n");
tek=*glava;
while(tek!=NULL)
{
printf(" %c",tek->znak);
tek=tek->sledeci;
}
}
void Oslobodi_memoriju(Pcvor *glava)
{
//Deklaracija lokalne promenljive
Pcvor tek;
while(*glava!=NULL)
{
tek=*glava;
*glava=tek->sledeci;
free(tek);
}
}
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: [Zadatak] Osnovne operacije sa dinamickom strukturom podataka oblika jednostruko spregnute liste 212.01.2006. u 16:14 - pre 179 meseci
Imaš ovde rešen ceo zadatak! Znam da ti je malo kasno jer ti je prošao taj čas, ali vredi pogledati!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Osnovne operacije sa dinamickom strukturom podataka oblika jednostruko spregnute liste 2

[ Pregleda: 2655 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.