Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

ĐỀ CƯƠNG CTDL&GT

Câu 4 : Khai báo cấu trúc danh sách liên kết đơn/kép. Thông tin chứa trong mỗi
nút gồm: họ tên, mã sv, điểm trung bình
*Danh sách liên kết đơn
#include <iostream>
using namespace std;
struct Node{
string name;
string id;
float average;
Node*next; // con trỏ next được sử dụng để liên kết các Node với nhau thành một danh sách
liên kết
};
int main(){
Node* head = new Node;
head->name = “John”;
head->id = “01”;
head->average = “8.5”;
head->next = nullptr;

Node*new_node = new Node;


new_node->name = “Kate”;
new_node->id = “02”;
new_node->average = “9.0”;
new_node->next = head; // Node này sẽ được chèn vào đầu danh sách liên kết, và con trỏ
next của nó sẽ trỏ đến Node cũ mà head trỏ đến
head = new_node; // head sẽ trỏ đến Node mới được chèn vào đầu danh sách liên kết, và
Node này sẽ có tên là “Kate”, id là “002” và average là 9.0

cout<<head->name<<”,”<<head->id<<”,”<<head->average<<”,”<<endl;
cout<<head->next->name<<”,”<<head-> next->id<<”,”<<head-> next-
>average<<”,”<<endl;
return 0;
}
*Danh sách liên kết đôi
#include<iostream>
using namespace std;
struct Node{
string name;
string id;
float average;
Node*next; // Con trỏ next được sử dụng để liên kết Node hiện tại với Node kế tiếp trong một
danh sách liên kết kép
Node* prev; // Con trỏ prev được sử dụng để liên kết Node hiện tại với Node trước đó trong
danh sách liên kết kép
};
int main(){
Node*head = new Node;
head->name = “John”;
head->id = “01”;
head->average = “8.5”;
head->next = nullptr;
head->prev = nullptr;

Node*new_node = new Node;


new_node->name = “Kate”;
new_node->id =”02”;
new_node->average = “9.0”;
new_node->prev = head;
new_node->next = nullptr;
// Node này sẽ được chèn vào cuối danh sách liên kết kép, và con trỏ prev của nó sẽ trỏ đến
Node cũ mà head trỏ đến.
head->next = new_node; // con trỏ next của Node mà head trỏ đến sẽ trỏ đến Node mới được
chèn vào cuối danh sách liên kết kép, và Node này sẽ có tên là “Kate”, id là “002” và average
là 9.0

cout<<head->name<<”,”<< head->id<<”,”<< head->average<<endl;


cout<<head->next->prev->name<<”,”<< head->next->prev->id<<”,”<< head->next->prev-
>average<<endl;
return 0;
};

You might also like