POMOC POMOC POMOC!!!

EnergY_90

Početnik
Poruka
4
Treba mi htino pomoc iz programiranja u C++...
Trenutno zavrsavam 3. godinu elektrotehnicke skole za racunare i za danas do 11h treba da uradim program u C++ za zavrsnu ocenu... Voljan sam i da platim ako treba samo nek mi uradi neko...

Zadatak:
Napraviti LISTU (dvostruko spregnutu) za ucitavanje i prikaz sledecih podataka vezanih za strukturu "vozilo" (ime vozila, boja vozila, godiste vozila)...

Hvala unapred...
 
Inace, imam program koji treba da prepravim... Ako nesto znaci, on ide ovako:
Kod:
:
----------------------------------------------------------------------------------------------------------------
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

typedef struct elem{int broj; struct elem *sled, *pret;}Elem;
typedef struct {Elem *prvi, *posl;} Lista;

void pisi_unapred (Lista lst){
	Elem *tek;
	for (tek=lst.prvi;tek;tek=tek->sled)
		printf(" %d",tek->broj);
		printf ("\n");}

void pisi_unazad (Lista lst){
	Elem *tek;
	for (tek=lst.posl; tek; tek=tek->pret)
    printf(" %d",tek->broj);
		printf ("\n");}

Elem *nadji_prvi (Lista lst, int b){
	Elem *tek;
	for (tek=lst.prvi; tek; tek=tek->sled)
		if (tek->broj==b) return tek;
		return NULL;}

Elem *nadji_posl (Lista lst,int b){
	Elem *tek;
	for (tek=lst.posl; tek; tek=tek->pret)
		if(tek->broj==b) return tek;
		return NULL;}

void na_pocetak (Lista *plst,int b){
	Elem *novi= (Elem*) malloc (sizeof(Elem));
	novi->broj=b;
	novi->sled=plst->prvi;
	novi->pret=NULL;
	if (!plst->posl) plst->posl=novi;
	else             plst->prvi->pret=novi;
	plst->prvi=novi;}

void na_kraj (Lista *plst, int b){
	Elem *novi = (Elem*) malloc (sizeof (Elem));
	novi->broj=b;
	novi->pret=plst->posl;
	novi->sled=NULL;
	if (!plst->prvi) plst->prvi=novi;
	else             plst->posl->sled=novi;
	plst->posl=novi;}

void brisi (Lista *plst){
	Elem *tek = plst->prvi, *stari;
	while (tek) {
		stari = tek;
		tek = tek->sled;
		free (stari);}
	plst->prvi = plst->posl = NULL;}

void izostavi_prvi (Lista *plst,int b){
	Elem *tek = nadji_prvi (*plst,b);
	if(tek){
		if(! tek->pret) plst->prvi = tek->sled;
		else            tek->pret->sled = tek->sled;
		if(! tek->sled) plst->posl = tek->pret;
		else            tek->sled->pret = tek->pret;
		free (tek);}}

void izostavi_posl (Lista *plst, int b){
	Elem *tek = nadji_posl (*plst,b);
	if(tek){
    if(! tek->pret) plst->prvi = tek->sled;
	else            tek->pret->sled = tek->sled;
    if(! tek->sled) plst->posl = tek->pret;
	else            tek->sled->pret = tek->pret;
	free (tek);}}

int main(int argc, char* argv[]){
	Lista lst={NULL,NULL}; int kraj=0, izb, broj, n;
	while (!kraj){
		printf(
			"1 - Dodavanje broja na pocetak liste\n"
			"2 - Dodavanje broja na kraj liste\n"
			"3 - Izostavljanje prvog pojavljivanja broja iz liste\n"
			"4 - Izostavljanje poslednjeg pojavljivanja broja iz liste\n"
			"5 - Brisanje svih elemenata liste\n"
			"6 - Ispisivanje liste unapred\n"
			"7 - Ispisivanje liste unazad\n"
			"0 - Zavrsetak rada\n"
			"Izbor? ");
		scanf("%d",&izb);
		switch (izb){
			case 1:case 2:case 3:case 4:
			printf("Broj? ");scanf("%d",&broj);
			switch (izb){
			case 1: na_pocetak (&lst,broj);             break;
			case 2: na_kraj (&lst, broj);               break;
			case 3: izostavi_prvi (&lst, broj);         break;
			case 4: izostavi_posl (&lst, broj);         break;}break;
			case 5: brisi (&lst);                       break;
			case 6: printf("Lista=");pisi_unapred(lst); break;
			case 7: printf("atsiL=");pisi_unazad(lst);  break;
			case 0: kraj=1;                             break; 
			default:printf ("GRESKA!\n");               break;}}}
----------------------------------------------------------------------------------------------------------------
 
A inace treba da prepravi sledeci program:

Kod:
:
-------------------------------------------------------------------------------------------------------------------
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

typedef struct elem{int broj; struct elem *sled, *pret;}Elem;
typedef struct {Elem *prvi, *posl;} Lista;

void pisi_unapred (Lista lst){
	Elem *tek;
	for (tek=lst.prvi;tek;tek=tek->sled)
		printf(" %d",tek->broj);
		printf ("\n");}

void pisi_unazad (Lista lst){
	Elem *tek;
	for (tek=lst.posl; tek; tek=tek->pret)
    printf(" %d",tek->broj);
		printf ("\n");}

Elem *nadji_prvi (Lista lst, int b){
	Elem *tek;
	for (tek=lst.prvi; tek; tek=tek->sled)
		if (tek->broj==b) return tek;
		return NULL;}

Elem *nadji_posl (Lista lst,int b){
	Elem *tek;
	for (tek=lst.posl; tek; tek=tek->pret)
		if(tek->broj==b) return tek;
		return NULL;}

void na_pocetak (Lista *plst,int b){
	Elem *novi= (Elem*) malloc (sizeof(Elem));
	novi->broj=b;
	novi->sled=plst->prvi;
	novi->pret=NULL;
	if (!plst->posl) plst->posl=novi;
	else             plst->prvi->pret=novi;
	plst->prvi=novi;}

void na_kraj (Lista *plst, int b){
	Elem *novi = (Elem*) malloc (sizeof (Elem));
	novi->broj=b;
	novi->pret=plst->posl;
	novi->sled=NULL;
	if (!plst->prvi) plst->prvi=novi;
	else             plst->posl->sled=novi;
	plst->posl=novi;}

void brisi (Lista *plst){
	Elem *tek = plst->prvi, *stari;
	while (tek) {
		stari = tek;
		tek = tek->sled;
		free (stari);}
	plst->prvi = plst->posl = NULL;}

void izostavi_prvi (Lista *plst,int b){
	Elem *tek = nadji_prvi (*plst,b);
	if(tek){
		if(! tek->pret) plst->prvi = tek->sled;
		else            tek->pret->sled = tek->sled;
		if(! tek->sled) plst->posl = tek->pret;
		else            tek->sled->pret = tek->pret;
		free (tek);}}

void izostavi_posl (Lista *plst, int b){
	Elem *tek = nadji_posl (*plst,b);
	if(tek){
    if(! tek->pret) plst->prvi = tek->sled;
	else            tek->pret->sled = tek->sled;
    if(! tek->sled) plst->posl = tek->pret;
	else            tek->sled->pret = tek->pret;
	free (tek);}}

int main(int argc, char* argv[]){
	Lista lst={NULL,NULL}; int kraj=0, izb, broj, n;
	while (!kraj){
		printf(
			"1 - Dodavanje broja na pocetak liste\n"
			"2 - Dodavanje broja na kraj liste\n"
			"3 - Izostavljanje prvog pojavljivanja broja iz liste\n"
			"4 - Izostavljanje poslednjeg pojavljivanja broja iz liste\n"
			"5 - Brisanje svih elemenata liste\n"
			"6 - Ispisivanje liste unapred\n"
			"7 - Ispisivanje liste unazad\n"
			"0 - Zavrsetak rada\n"
			"Izbor? ");
		scanf("%d",&izb);
		switch (izb){
			case 1:case 2:case 3:case 4:
			printf("Broj? ");scanf("%d",&broj);
			switch (izb){
			case 1: na_pocetak (&lst,broj);             break;
			case 2: na_kraj (&lst, broj);               break;
			case 3: izostavi_prvi (&lst, broj);         break;
			case 4: izostavi_posl (&lst, broj);         break;}break;
			case 5: brisi (&lst);                       break;
			case 6: printf("Lista=");pisi_unapred(lst); break;
			case 7: printf("atsiL=");pisi_unazad(lst);  break;
			case 0: kraj=1;                             break; 
			default:printf ("GRESKA!\n");               break;}}}
-------------------------------------------------------------------------------------------------------------------
 

Back
Top