

Preview text:
- Viết hàm thêm một phần tử mới có giá trị x vào ngay sau node ký hiệu pNode. Giả sử pNode này cho trước.
void insertMiddle(Node*& pHead, int x, Node* pNode)
{
Node* pNew = createNode(x);
if (!pHead) // Nếu danh sách rỗng pHead = pNew;
else // Nếu danh sách khác rỗng
{
pNew->pNext = pNode->pNext; pNode->pNext = pNew;
}
}
- Tọa độ của một điểm trên mặt phẳng Oxy gồm 2 thành phần nguyên x và y. Giả sử dùng DSLK đơn để quản lý các điểm này.
- Khai báo các cấu trúc dữ liệu cần thiết.
- Viết hàm in ra tất cả các điểm (có trong DSLK đơn) nằm trên đường thẳng
y=3x+2
struct ToaDo
{
int x, y;
};
struct Node
{
ToaDo data;
Node* pNext;
};
void printNode(Node* pHead)
{
if (!pHead)
cout << "Danh sach rong!" << endl; else
{
bool flag = false; // Biến dùng để kiểm tra có tìm được điểm thỏa mãn hay không
while (pHead)
{
if (pHead->data.y == 3 * pHead->data.x + 2)
{
if(!flag)
cout << "Tat ca cac diem nam tren duong thang y = 3x + 2 la:
" << endl;
cout << "(" << pHead->data.x << ";" << pHead->data.y << ") "; flag = true; // Đã tìm được điểm thỏa mãn
}
pHead = pHead->pNext;
}
if (!flag) // Nếu không tìm được điểm thỏa mãn
cout << "Khong co diem nao nam tren duong thang y = 3x + 2" << endl;
}
}