Unelte utilizator

Unelte site


laboratoare:laborator-02

Diferențe

Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

Ambele părți revizuirea anterioară Versiuni anterioare
Urmatoarea versiune
Versiuni anterioare
Urmatoarea versiune Ambele părți următoarea reviziune
laboratoare:laborator-02 [2017/02/20 00:42]
florina_elena.barbu [4. Funcţia de dispersie(hash function)]
laboratoare:laborator-02 [2017/03/04 09:28]
iulian.matesica
Linia 20: Linia 20:
 Definirea nodului unei liste: Definirea nodului unei liste:
 <file cpp> <file cpp>
-typedef struct node{+typedef struct {
      int val;      int val;
-     struct node * next; +     node *next; 
-}node t;+node_t;
 </file> </file>
  
Linia 50: Linia 50:
  
  
-=====3.Exerciții propuse pentru laborator=====+ 
 +=====3. Exercitii Liste ===== 
 +Pentru laboratorul de liste inlantuite vom porni de la o arhiva cu un schelet de laborator. Nu veti scrie codul de la zero ci veti implementa cateva functii in fisierul ''%%list.c%%''
 + 
 +Descarcati arhiva de {{ :laboratoare:lab1-skel.zip |aici}} si dezarhivati-o. Puteti folosi utilitarul ''%%wget%%'' pentru descarcare si utilitarul ''%%unzip%%'' pentru dezarhivare. 
 +<code bash> 
 +student@sda-ab-vm:~/Documents$ wget http://elf.cs.pub.ro/sda-ab/wiki/_media/laboratoare/lab1-skel.zip 
 +--2017-03-02 20:45:55--  http://elf.cs.pub.ro/sda-ab/wiki/_media/laboratoare/lab1-skel.zip 
 +Resolving elf.cs.pub.ro (elf.cs.pub.ro)... 141.85.227.116 
 +Connecting to elf.cs.pub.ro (elf.cs.pub.ro)|141.85.227.116|:80... connected. 
 +HTTP request sent, awaiting response... 200 OK 
 +Length: 2368 (2,3K) [application/zip] 
 +Saving to: ‘lab1-skel.zip’ 
 + 
 +lab1-skel.zip       100%[===================>  2,31K  --.-KB/   in 0s       
 + 
 +2017-03-02 20:45:56 (4,78 MB/s) - ‘lab1-skel.zip’ saved [2368/2368] 
 + 
 +student@sda-ab-vm:~/Documents$ ls 
 +lab1-skel.zip 
 +student@sda-ab-vm:~/Documents$ unzip lab1-skel.zip 
 +Archive:  lab1-skel.zip 
 +  inflating: list.c                   
 +  inflating: list.h                   
 +  inflating: Makefile 
 +student@sda-ab-vm:~/Documents$ make 
 +gcc list.c -o list -std=gnu99 
 +student@sda-ab-vm:~/Documents$ make run 
 +</code> 
 + 
 +Pentru compilare folositi comanda ''%%make%%''. Pentru rulare puteti folosi fie **''%%./list%%''** fie comanda ''%%make run%%''
 + 
 + 
 + 
 +=====4.Exerciții propuse pentru laborator=====
 1. Creați o listă circulară,dublu inlănțuită cu 6 angajați ai unei companii, care să conțină următoarele referințe: nume, nr de telefon, post. 1. Creați o listă circulară,dublu inlănțuită cu 6 angajați ai unei companii, care să conțină următoarele referințe: nume, nr de telefon, post.
   * Scrieți funcțiile care să scrie urmatoarele:\\   * Scrieți funcțiile care să scrie urmatoarele:\\
Linia 64: Linia 98:
  
  
 +====Probleme opţionale - de interviu====
 +
 +1. Se dă o listă simplu înlănţuită(primiţi doar un pointer către primul element). Verificaţi dacă lista conţine o buclă. (o listă simplu înlănţuită conţine o buclă => niciun element nu are legătura NULL)
 +
 +2. Se dau două liste(pentru fiecare listă - pointer către primul element) în formă de Y(listele se intersectează, ultimele k elemente sunt comune). Aflaţi valoarea lui k.
 +
 +3. Se dă o listă  cu 2n+1 elemente, fiecare element conţine câte un întreg. Toate valorile întregi apar de două ori în listă, excepţie facând una singură. Aflaţi acea valoare.
  
 ====== Extra: Hashtable(tabela de dispersie)====== ====== Extra: Hashtable(tabela de dispersie)======
Linia 180: Linia 221:
  *exemplul prezentat este demonstrativ(pentru sortare eficientă care extinde ideea, vedeţi **Radix Sort**)  *exemplul prezentat este demonstrativ(pentru sortare eficientă care extinde ideea, vedeţi **Radix Sort**)
  *funcţiile hash au aplicaţii mai importante în protecţia(criptarea) datelor(vedeţi **Caesar-Cipher**, **ROT13**, **SHA-256**)  *funcţiile hash au aplicaţii mai importante în protecţia(criptarea) datelor(vedeţi **Caesar-Cipher**, **ROT13**, **SHA-256**)
- 
laboratoare/laborator-02.txt · Ultima modificare: 2018/02/25 22:02 de către mihai.iacov