Crearea și Vizualizarea unei Liste Liniare

Laborator
8/10 (1 vot)
Conține 1 fișier: doc
Pagini : 12 în total
Cuvinte : 1546
Mărime: 7.60KB (arhivat)
Publicat de: Nora Stoian
Puncte necesare: 0
Laborator 4

Extras din laborator

Tema1: Scrieţi programul C care realizează crearea şi vizualizarea unei liste liniare implementată prin tipul pointer,dacă inserarea se face în faţa listei.

Tema2: Scrieţi programul C care vă permite efectuarea următoarelor operaţii asupra unei liste liniare simplu înlănţuite:

- creare cu inserare în faţă;

- inserarea unui nod după un nod dat;

- vizualizarea listei liniare;

- căutarea unui nod dat;

Tema3: Scrieţi programul C care vă permite efectuarea următoarelor operaţii asupra unei liste liniare simplu înlănţuite:

- creare cu inserare în spate;

- inserarea unui nod după un nod dat;

- vizualizarea listei liniare;

- căutarea unui nod dat;

Liste implementate prin tipul pointer:

Din punct de vedere matematic, o listă este o secvenţă de zero sau mai multe elemente numite noduri, de un anumit tip numit tip de bază. Aşadar o listă liniară este o colecţie de zero sau mai multe noduri ale căror proprietăţi se reduce în principal la poziţiile relative liniare(unidimensionale) ale acestor noduri.

În loc să păstrăm o listă liniară în locaţii successive de memorie se poate folosi o schemă mult mai flexibilă, în care fiecare nod este legat de următorul nod al listei prin câmpul urm(ător) al listei, unde p este o variabilă pointer care indică primul nod.

Există posibilitatea de a folosi o variabilă de tip nod, în care câmpul urm(ător) indică primul nod efectiv al listei, iar celelalte câmpuri, care ar conţine informaţia propriu-zisă, ar rămâne neasignate. Pointerul p va indica în aceaastă situaţie, acest nod fictive cap de listă. Utilizarea acestui nod de început simplifică în anumite situaţii prelucrarea listelor înlănţuite.

Tema 1: Scrieţi programul C care realizează crearea şi vizualizarea unei liste liniare implementată prin tipul pointer,dacă inserarea se face în faţa listei.

Pentru crearea listei se va crea mai întâi primul nod al listei. Fie p o variabilă pointer(de tip referinţă) care va indica mereu adresa primului nod al listei şi q o variabilă pointer auxiliară tot de tip referinţă.

Să considerăm că avem creat cel puţin primul nod al listei. Pentru adăugarea unui nou nod la începutul listei trebuie să procedăm astfel:

generăm o nouă locaţie de memorie cu aceeaşi structură a cărei adresă o memorăm într-o variabilă de tip pointer q;

pregătim câmpul cheie şi câmpul info al variabilei pointer q;

în câmpul urm al acestui nod trebuie să punem adresa primului nod p;

în final, lui p îi atribuim adresa noului nod care devine acum primul.

Programul C care realizează crearea unei liste liniare simplu înlănţuite prin inserare în faţa listei este următorul:

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

#include <ctype.h>

struct element

{

int cheie;

char info[10];

struct element *urm;

};

typedef struct element Telem;

typedef Telem *ref;

ref p,q,r;

char c;

void ins_p(void)

{

q=(ref)malloc(sizeof(Telem));

printf("inform=");

fflush(stdin);

scanf("%s",&q->info);

printf("cheia=");

scanf("%d",&q->cheie);

q->urm=NULL;

p=q;

}/*ins_p*/

void ins_cf(void)

{

q=(ref)malloc(sizeof(Telem));

printf("inform=");

fflush(stdin);

scanf("%s",&q->info);

printf("cheia=");

scanf("%d",&q->cheie);

q->urm=p;

p=q;

}/*ins_cf*/

void creare(void)

{

char c;

ins_p();

printf("Adaugi element?(D/N) : ");

fflush(stdin);

scanf("%c",&c);

c=toupper(c);

while (c=='D')

{

ins_cf();

printf("Mai adaugi?(D/N) : ");

fflush(stdin);

scanf("%c",&c);

c=toupper(c);

}

}/*creare*/

void listare(void)

{

r=p;

while(r!=NULL)

{

printf("cheia=%dninfo=%snn",r->cheie,r->info);

r=r->urm;

}

}/*listare*/

void main()

{

char op;

do

{

clrscr();

printf("Operatii asupra listelor liniare simplu inlantuitenn");

printf("C - Crearen”);

printf(“L - Listaren”);

printf(“E - Iesirenn");

printf("Introdu optiunea : ");

fflush(stdin);

scanf("%c",&op);op=toupper(op);

switch (op)

{

case 'C':creare(); break;

case 'L':listare(); break;

case 'E':break;

default : printf("Ai introdus o optiune eronata!n");

} /*switch*/

printf("Tastati ENTERn");

getch();

}

while(op!='E');

Preview document

Crearea și Vizualizarea unei Liste Liniare - Pagina 1
Crearea și Vizualizarea unei Liste Liniare - Pagina 2
Crearea și Vizualizarea unei Liste Liniare - Pagina 3
Crearea și Vizualizarea unei Liste Liniare - Pagina 4
Crearea și Vizualizarea unei Liste Liniare - Pagina 5
Crearea și Vizualizarea unei Liste Liniare - Pagina 6
Crearea și Vizualizarea unei Liste Liniare - Pagina 7
Crearea și Vizualizarea unei Liste Liniare - Pagina 8
Crearea și Vizualizarea unei Liste Liniare - Pagina 9
Crearea și Vizualizarea unei Liste Liniare - Pagina 10
Crearea și Vizualizarea unei Liste Liniare - Pagina 11
Crearea și Vizualizarea unei Liste Liniare - Pagina 12

Conținut arhivă zip

  • Crearea si Vizualizarea unei Liste Liniare.doc

Alții au mai descărcat și

Referințe și pointeri

In C++ exista doua modalitati de lucra cu adrese de memomorie: pointeri si referinte. Pointeri Pointerii sunt variabile care contin adresa unei...

Clase

Clasele reprezintă tipuri de data abstracte, asemănătoare structurilor, care încapsulează comportamentul şi datele asociate unei entităţi....

Probleme C++ Rezolvate

Problema 1: cmmdc(a, b) #include<stdio.h> #include<conio.h> //algoritmul lui Euclid //cel mai mare divizor comun pentru doua numere strict...

Laboratoare C++ (SDA)

1.1. Crearea şi afişarea unei liste Exerciţiul 1. Să se scrie programul pentru crearea unei liste simplu înlănţuite cu preluarea datelor de la...

Programare în C

Primul program C #include <stdio.h> int main(void) { printf(“Salut!\n”); printf(“Iata primul program C!”); return 0; } Caracterele...

Implementarea tipului de date abstract - lista simplu înlănțuită în C

Lucrare de laborator Nr.2 si 3 Tema: Implementarea tipului de date abstract “Lista simplu inlantuita” in C Scopul lucrarii: obtinerea...

Structuri de Date și Algoritmi - Curs 1

Curs 1 - Introducere. Structuri de date - noţiuni generale Introducere Tipuri de bază. Pointeri. Tablouri. Paradigme de programare Programare...

Structuri de Date și Algoritmi - Curs 2

Curs 2 – Liste simplu înlănţuite Structura unei liste. Definirea elementului listei Element Listă Curs 2 – Liste simplu înlănţuite typedef int...

Te-ar putea interesa și

Structuri de date

Laborator nr. 1 Tema 1: Se dă un set de numere întregi. Să se afișeze în ordine crescătoare aceste numere. Analiza: Sortarea este un domeniu, o...

Metodica Predării Informaticii

Curs 1 - METODICA PREDĂRII INFORMATICII BIBLIOGRAFIE: 1. Clara Ionescu. Metodica predării informaticii, Cluj. 2. Cristian Masalagiu, Ioan...

Ai nevoie de altceva?