LATEST

Tạo node mới trong DSLK đơn

Trong bài viết này, codehow sẽ hướng dẫn các bạn cách tạo node mới trong DSLK đơn. Các bạn cần tìm hiểu trước về DSLK đơn là gì? khi đó vào bài này các bạn sẽ dễ hiểu hơn nhé.

Như các bạn đã học ở bài trước thì một phần tử trong DSLK đơn là một node. Vậy để có thể làm việc được với DSLK đơn, việc đầu tiên ta cần tạo node.

Vậy làm thế nào để tạo node? Điều kiện cần để có thể tạo node là gì? Các bạn cùng mình bắt đầu ngay thôi nhé.

Tạo node mới trong DSLK đơn cần khai báo những gì?

Không đơn giản chúng ta chỉ cần tạo một node là có thể quản lý được DSLK đơn. Việc đầu tiên để có thể tạo được một node thì chúng ta cần cài đặt một DSLK đơn.

Về việc cài đặt này chúng ta có hai cách là sử dụng pHead và sử dụng pHead & pTail để cài đặt.

Cài đặt DSLK đơn sử dụng pHead

bai25 02 png

/* Khai báo giá trị data và con trỏ pNext trỏ tới phần tử kế tiếp */
struct Node
{
  int data;// giá trị data của node
  Node *pNext;// con trỏ pNext
};
/* Khai báo Node đầu pHead */
struct SingleList
{
  Node *pHead; //Node đầu pHead
};
/* khởi tạo giá trị cho Node */
void Initialize(SingleList &list)
{
  list.pHead=NULL;// khởi tạo giá trị cho Node là Null
}

Cài đặt DSLK đơn sử dụng pHead và pTail

bai25 03 png

/* Khai báo giá trị data và con trỏ pNext trỏ tới phần tử kế tiếp */
struct Node
{
  int data;// giá trị data của node
  Node *pNext;// con trỏ pNext
};
/* Khai báo Node đầu pHead và Node cuối pTail*/
struct SingleList
{
  Node *pHead; //Node đầu pHead
  Node *pTail; // Node cuối pTail
};
/* khởi tạo giá trị cho Node đầu và Node cuối */
void Initialize(SingleList &list)
{
  list.pHead=list.pTail=NULL;// khởi tạo giá trị cho Node đầu và Node cuối là Null
}

Để hiểu rõ hơn về phần này, các bạn có thể xem lại bài viết về cấu trúc dữ liệu của DSLK đơn trong C / C++.

Cách tạo node mới trong DSLK đơn

Sau khi các bạn đã cài đặt DSLK đơn bào gồm việc khai báo cấu trúc pHead hoặc pHead & pTail, khai báo và khởi tạo node. Bây giờ chúng ta đã có thể bắt đầu tạo node mới cho DSLK đơn được rồi.

bai26 01 png

Dưới đây là hàm tạo node, các bạn có thể tham khảo, mình sẽ giải thích ngay bên dưới.

/* tạo Node trong danh sách liên kết đơn */
Node *CreateNode(int d)
{
    Node *pNode=new Node; //sử dụng pNode để tạo một Node mới
    if(pNode!=NULL) // Nếu pNode != Null, tức là pNode có giá trị thì
    {
       pNode->data=d; // gán giá trị data cho d
       pNode->pNext=NULL;// và cho con trỏ pNext trỏ tới giá trị Null
    }
    else // Nếu pNode == Null, tức là pNode không có giá trị thì xuất thông tin
    {
      cout<<"Error allocated memory";
    }
    return pNode;//trả về pNode
}

Giải thích:

  1. Đầu tiên chúng ta sử dụng con trỏ pNode để tạo một Node mới.
  2. Kiểm tra nếu pNode != NULL, nghĩa là pNode có giá trị. Khi đó ta thực hiện:
    • Gán giá trị data của node cho tham số d.
    • Cho con trỏ pNext trỏ đến giá trị NULL.
  3. Nếu pNode không có giá trị thì hiển thị thôn báo ra màn hình.
  4. Sau khi xét điều kiện xong, ta thực hiện return pNote và kết thúc hàm.

Trên đây là hàm tạo node mới trong DSLK đơn. Hàm này chỉ sử dụng để tạo mới một node. Các bạn có thể sử dụng hàm nay trong DSLK đơn được cài đặt bằng pHead hoặc pHead & pTail đều được.

Full code tạo node mới trong DSLK đơn sử dụng pHead:

pHead
/* Khai báo giá trị data và con trỏ pNext trỏ tới phần tử kế tiếp */
struct Node
{
  int data;// giá trị data của node
  Node *pNext;// con trỏ pNext
};
/* Khai báo Node đầu pHead */
struct SingleList
{
  Node *pHead; //Node đầu pHead
};
/* khởi tạo giá trị cho Node */
void Initialize(SingleList &list)
{
  list.pHead=NULL;// khởi tạo giá trị cho Node là Null
}
/* tạo Node trong danh sách liên kết đơn */
Node *CreateNode(int d)
{
    Node *pNode=new Node; //sử dụng pNode để tạo một Node mới
    if(pNode!=NULL) // Nếu pNode != Null, tức là pNode có giá trị thì
    {
       pNode->data=d; // gán giá trị data cho d
       pNode->pNext=NULL;// và cho con trỏ pNext trỏ tới giá trị Null
    }
    else // Nếu pNode == Null, tức là pNode không có giá trị thì xuất thông tin
    {
      cout<<"Error allocated memory";
    }
    return pNode;//trả về pNode
}

Full code tạo node mới trong DSLK đơn sử dụng pHead và pTail:

pHead & pTail
/* Khai báo giá trị data và con trỏ pNext trỏ tới phần tử kế tiếp */
struct Node
{
  int data;// giá trị data của node
  Node *pNext;// con trỏ pNext
};
 
/* Khai báo Node đầu pHead và Node cuối pTail*/
struct SingleList
{
  Node *pHead; //Node đầu pHead
  Node *pTail; // Node cuối pTail
};
 
/* khởi tạo giá trị cho Node đầu và Node cuối */
void Initialize(SingleList &list)
{
  list.pHead=list.pTail=NULL;// khởi tạo giá trị cho Node đầu và Node cuối là Null
}
 
/* tạo Node trong danh sách liên kết đơn */
Node *CreateNode(int d)
{
    Node *pNode=new Node; //sử dụng pNode để tạo một Node mới
    if(pNode!=NULL) // Nếu pNode != Null, tức là pNode có giá trị thì
    {
       pNode->data=d; // gán giá trị data cho d
       pNode->pNext=NULL;// và cho con trỏ pNext trỏ tới giá trị Null
    }
    else // Nếu pNode == Null, tức là pNode không có giá trị thì xuất thông tin
    {
      cout<<"Error allocated memory";
    }
    return pNode;//trả về pNode
}

Kết luận

Như vậy là chúng ta đã cùng nhau tìm hiểu về cách tạo node mới trong DSLK đơn. Qua bài viết này, mình muốn các bạn nắm rõ một số kiến thức sau đây:

  • Cần cài đặt DSLK đơn trước khi tạo node mới. Có thể sử dụng pHead hoặc sử dụng pHead và pTail để cài đặt.
  • Các bước để tạo node mới trong DSLK đơn.

Ở bài viết tiếp theo, mình sẽ hướng dẫn các bạn cách chèn node (Insert node) vào trong DSLK đơn. Các bạn nhớ chú ý theo dõi nhé, cảm ơn các bạn rất nhiều.

Cùng chuyên mục:

Xóa node khỏi cây nhị phân tìm kiếm

Xóa node khỏi cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cách gộp hai danh sách liên kết đôi

Cách gộp hai danh sách liên kết đôi

Tìm kiếm phần tử trong DSLK đôi

Tìm kiếm phần tử trong DSLK đôi

Xóa node trong DSLK đôi

Xóa node trong DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Duyệt danh sách liên kết đôi

Duyệt danh sách liên kết đôi

Tạo node mới trong DSLK đôi

Tạo node mới trong DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

Quản lý sinh viên bằng DSLK đơn

Quản lý sinh viên bằng DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Top