簡體   English   中英

關於鏈接列表中節點的困惑

[英]Confusion regarding nodes in a Linked List

我對鏈接列表有疑問。 我跟一個朋友說話,現在很困惑。 假設有兩個類型為struct node的變量。 一個是ptr,另一個是標頭節點。

struct node
{
  int data;
  struct node *link;
};
struct node *ptr,*header;

之間有什么區別

ptr=header

ptr->link=header

ptr->link=header->link

編輯:我的意思是語義。

假設標頭最初指向分配的節點,它將看起來像

                       +----------------+-----------+
                       |                |           |
header  +----------->  |   data         |  link+-----------> other node/NULL
                       |                |           |
                       +----------------+-----------+

ptr=headerptrheader指向同一節點

                       +----------------+-----------+
pointer +----------->  |                |           |
header  +----------->  |   data         |  link+-----------> other node/NULL
                       |                |           |
                       +----------------+-----------+

ptr->link=header

                       +----------------+-----------+
pointer +----------->  |                |           |
header  +----------->  |   data         |  link+----------+ 
                +--->  |                |           |     |
                |      +----------------+-----------+     |
                +-----------------------------------------+  

ptr->link=header->link ,將取決於headerptr指向的位置

  • 如果它們指向同一節點,則此語句無效。
  • 如果它們指向某些不同的節點,則由ptrheader指向的兩個節點的link指針將指向同一節點(或NULL )。

      +----------------+-----------+ | | | header +-----------> | data | link+--------------+ | | | | | +----------------+-----------+ +------> | |other node/NULL +------> | +----------------+-----------+ | | | | | ptr +-----------> | data | link+--------------+ | | | +----------------+-----------+ 

假設您僅執行以下情況之一:

  • ptr=header將指向header節點。 這意味着ptr的數據將與header的數據相同。 ptr->link也將與header->link相同
  • ptr->link=header header在列表中將ptr移到ptr->link=header
  • ptr->link = header->link使ptrheader平行,例如:

     ptr->data != header->data; // TRUE a = ptr->link; b = header->link; a->data == b->data // TRUE 

其中abstruct node*類型

理解的最好方法是將其繪制出來。 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM