1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo: Danh sách liên kết pdf

34 605 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 290,09 KB

Nội dung

Nguyễn Thanh HiênDanh Sách Liên Kết Linked List • Gồm nhiều phần tử gọi mỗi phần tử là... • typedef struct node {T info; // T là kiểu đã định nghĩa trước struct node* link; // con trỏ ch

Trang 1

Nguyễn Thanh Hiên

Danh Sách Liên Kết (Linked List)

• Gồm nhiều phần tử (gọi mỗi phần tử là

Trang 2

• Khởi tạo ( init )

Trang 3

• typedef struct node {

T info; // T là kiểu đã định nghĩa trước

struct node* link; // con trỏ chỉ đến cấu trúc node

}NODE ;

• T là kiểu dữ liệu cơ bản hoặc kiểu dữ liệu

tự định nghĩa

DSLK Đơn- Cấu trúc dữ liệu

• typedef struct node

{

struct node* link;

} NODE ; CTDL cho một phần tử của DS

các số nguyên

Trang 4

• typedef struct SinhVien

DSLK Đơn- Cấu trúc dữ liệu

• typedef struct phanso

Trang 6

• T ạo một Node mới cho DS

Chèn vào đầu ( insertHead )

Chèn vào cuối ( insertTail )

Chèn sau phần tử q ( insertMid )

Trang 7

• Chèn vào đầu ( insertHead )

pTail pHead

x

newNode

(1) (2)

DSLK Đơn- Các Tác Vụ

void insertHead(LIST&ds, NODE* newNode)

Trang 8

• Chèn vào cu ối ( insertTail )

DSLK Đơn- Các Tác Vụ

• Chèn vào cu ối ( insertTail )

void insertTail(LIST&ds, NODE*newNode)

Trang 13

ds.pHead = p->link;

if(ds.pHead == NULL)

ds.pTail = NULL;

} return 1;

}

Trang 14

void ReamoveList(LIST&ds)

struct DNode* pPre;

struct DNode* pNext;

}DNODE;

Trang 18

in whichstack grows

•Danh sách hạn chế

•Các phần tử được thêm vào và lấy ra ở đỉnh stack

• Hiện thực dùng dslk hoặc array

Trang 19

void push ( STACK &s, T x){

bool isFull( STACK s) {

if(s.top < s.size-1) return false;

else return true;

}

Stack- Pop(), Top()

T pop( STACK &s){

bool isEmpty( STACK s) {

if(s.top == -1) return true;

else return false;

Trang 20

56 31 29 179 2push(2)

56 31 29 179 2

Return 2

toptop

Return 52

top()

Queue

• Danh sách hạn chế

• Chèn vào một đầu, lấy ra ở đầu kia

• Hiện thực dùng dslk hoặc array

• Linear and Circular Queues

of the queue

12 31 79 5 63

Trang 22

17 52 23front back

Trang 24

EnQueue-> Queue full:

(back +1)%size == front

Trang 25

void init( QUEUE &q, int size) {

else return false;

}

if (q.back == q.front) return true;

else return false;

}

Trang 26

Path: n1->nklà một chuỗi các nút n1->nksao cho nilà cha ni+1, 1 <= i <=k

depth

Trang 28

• PreOrder

– Duyệt gốc

– Duyệt các cây con bên trái

– Duyệt cây con bên phải

– Duyệt cây con bên trái

– Duyệt cây con bên phải

Trang 29

void PreOrder(TNODE*root){

VÍ DỤ

• Cho cây nhị phân, mỗi nút có info (không trùng

nhau) là một số nguyên

– Đếm số nút trên cây

– Tính tổng các info trên cây

– Cho biết tổ tiên của nút có info là x

– Cho biết info các nút ở mức 3

– Cho biết tổng info trên cây

– Cho biết các nút có tổng info các conlà bội số của info

của cha nó

– Cho biết tổng số nút lá

– Cho biết tổng số nút bậc một

Trang 31

TNODE*Retrieval(TNODE* root, Tx){

Trang 32

• Tạo BSTvới các info: 5 9 7 3 8 12 6 4 20

BST-Insert

Trang 33

BST-Insert

Trang 34

root ->right = NULL;

root ->left = NULL:

root ->info = x;

return 1;

}

Ngày đăng: 30/07/2014, 09:21

TỪ KHÓA LIÊN QUAN

w