關於鍊錶的一些簡單內容

2021-08-16 08:41:38 字數 2182 閱讀 9282

以下是我對鍊錶一些簡單知識點的總結,包括鍊錶的建立,遍歷以及刪除,清除等。

一,建立鍊錶

鍊錶同一維陣列類似,用於存放線性表,並且便於邊讀入,邊輸出,即鍊錶的長度可不必預先設定;因此鍊錶在增添,刪除資料方面要簡便於陣列,但同時,鍊錶難以實現類似於陣列一樣通過下標直接訪問對應內容,常需遍歷。

首先,鍊錶的建立依賴於資料結構即構造一種新的結構(由儲存內容與指向下一結構的指標構成),在我看來指向下乙個結構的指標正是構成連表的「鏈」。

typedef struct _nodenode;
注意!!此處不能為

typedef struct _nodenode;
在這裡構建鍊錶以輸入一系列數字,以-1為結束的標誌

構建鍊錶的函式如下

node *add(node *head , int number)//為保證能多次使用,返回一指標,返回不能為空

//attach

last->next = p;//

} else

return head;

}

主函式如下

int main()

}while ( number != -1);

return 0;

}

以上是較常用的鍊錶構建函式

方案二:

為防止將

head=add(head,number);

此步給head賦值遺漏,可以嘗試將head的位址傳入

int main()

}while ( number != -1);

return 0;

}node *add(node** phead , int number)

last->next = p;//attach

} else

return head;//此處有無返回不重要

}

此方法直接傳入head的位址,對其修改,可以省去再給head賦值的步驟

方案三:

構建新的資料結構

typeddef struct _listlist;

void add(list* list , int number)

last->next = p;//attach

} else

}int main()

}while ( number != -1);

return 0;

}

以上即有關鍊錶構建的內容,需注意,這裡並沒有解決malloc失敗的情況!!!

二,鍊錶的遍歷

此處以輸出鍊錶中所有資料為例進行遍歷

void print ( node* head)

}

三,搜尋到特定數字並刪除

搜尋到特定數字:

scanf("%d",&number1);

node *p;

int isfound = 0;

for ( p=head ; p ; p=p->next )

} if ( !isfound )

刪除找到的數字:

node* q,*p;

for ( q=null,p=head ; p ; q=p,p=p->next)

else

free(p);

break;

} }

四,清除鍊錶

for ( p=head ; p ; p=q )
五,關於加標指標tail

tail用於標註指標末尾,便於搜尋

typeddef struct _listlist;

void add(list* list , int number)

last->next = p;//attach

} else

list->tail->next = p;//find the tail ; tail->next = n ; n->next = 0;

}

以上即關於鍊錶的一些簡單內容,複雜的方面後續會有介紹。

關於鍊錶的一些題目

2.刪除遞增有序鍊錶中大於min,小於max的元素 3.逆置鍊錶 4.合併兩個鍊錶 4.合併n個鍊錶 分治法 測試 前乙個與後乙個比較,相同就刪除結點,並釋放記憶體。返回頂部 先找到兩個前驅,釋放中間結點,並且將鍊錶重新鏈起來。返回頂部 public listnode reverselist lis...

關於鍊錶的一些總結

1.在鍊錶頭部新增空頭以消除頭部特殊判斷比較常見,用於刪除和新增元素,啞結點的意思就是在head第乙個節點之前設立乙個節點。2.因為鍊錶的操作有限,所以很多時候我們可以把鍊錶中的元素儲存在陣列中,進行操作。3.鍊錶從前往後遍歷元素簡單,但是從後往前遍歷元素確實困難重重,所以我們可以使用棧來儲存資料,...

關於雙向鍊錶的一些分析

一 插入操作 insert 一 基本原理 雙鏈表就好像是手拉手站成一排的人,每個人的右手 next 拉著下乙個人,左手 prior 拉著前乙個人,每兩個人之間有兩支手互聯.插入操作實際是 向隊伍中增加人員,他需要拉上左右兩邊的人,即共三個人要發生關係,由於每兩個人之間有兩支手互聯,所以要發生4次操作...