易學c 鍊錶學習

2021-07-02 01:11:00 字數 1912 閱讀 4647

通過《易學c++》學習的鍊錶理解的總結:

在書中對鍊錶的實現和操作做了乙個形象的描述,首先介紹鍊錶是乙個順序相連線的鏈條,類似於自行車車鏈,一環套一環,鍊錶是乙個單向可遍歷的,只能通過從頭開始,逐個遍歷的過程來實現鍊錶節點(node)的查詢過程。

實現鍊錶,首先要明晰乙個節點的概念,乙個節點,首先要有乙個儲存資料的記憶體空間,然後包含乙個指向下乙個節點的指標。所以,定義乙個結構型別,命名為node。

struct node ;

char型別的data用來接收鍊錶節點上儲存的資料;

node結構的指標next,用來指向下乙個節點的位址,因為下乙個節點也是乙個node,儲存空間也是需要乙個node的大小,所以要用乙個節點指標指向,要是用個整形指標指向當然就錯了。

然後就是需要定義的方法,對待鍊錶,

首先要實現的是建立鍊錶,

然後要實現的是對鍊錶資訊的顯示,

然後要實現的是對鍊錶資訊的插入,

然後要實現的是對鍊錶資訊的刪除。

所以分別要定義以下的方法,

createlist();

showlist();

insertlist();

deletelist();

createlist();要實現的是建立乙個新的鍊錶,而鍊錶只需要返回乙個頭節點的位址就可以完成整個列表的操作了,這樣的情況下就只需返回乙個建立好的節點的位址就可以了。

列表建立需要知道頭結點,phead,

需要知道尾部節點,pend;

需要有乙個臨時節點用來傳遞資料,ptemp;

需要乙個變數來接受資料;

所以如下定義createlist:

node *createlist()

else if()

} }

while (c!=『#』);

return phead; };

showlist的實現,只是用來display這個鍊錶的內容,所以返回型別用void就可以了,設定乙個形參,用來傳遞要讀的那個鍊錶;

void showlist(node *head)

} 要想實現insert首先要實現的是乙個findlist的功能,就是要查詢到對應的節點,然後再返回該節點的指標。

node *findlist(node *head)

else

} coutreturn pfind; }

insertlist的實現,insertlist的過程是乙個插入的過程,應該是首先定位要插入的位置,這乙個通過鍊錶的搜尋實現,然後在需要插入的節點的位置,首先建立乙個新的node,ntemp,相當於開闢了乙個新的記憶體,用來儲存新插入的資料,ntemp->data=c;ntemp->next

insertlist(node *head)

// //  main.cpp

//  linklist //

// #include

using namespace std;

//以下**建立乙個節點的結構體;

struct node ;

node *create();//定義create方法,用來建立節點,返回的是乙個節點型別的指標;

void showlist(node *head);//顯示鍊錶內容的方法,引數為乙個節點的頭指標。

int main()

//建立鍊錶的方法實現

node *create()

else//如果head不是空的那麼就需要將ps的資訊轉移給pend,因為ps還要騰出來去指下乙個輸入時候的新的記憶體空間。

pend = ps;//在安排好倒數第二個的next指向之後,pend開始挪到最後的位置。

} }

while (temp != '#') ;

return head; }

void showlist(node *head)

cout< }

C 學習之鍊錶

1.1建立與遍歷鍊錶 includeusing namespace std struct student student head 定義頭結點 student create pend next null delete ps return head void showlist student head...

c 學習之鍊錶

一 建立鍊錶 鍊錶的遍歷 將三個學生的資訊以鍊錶形式表達 include using namespace std struct student message 首先定義乙個結構體,包含名字 年齡 下乙個人的位址 void main 3 定義第三個學生,這個節點是尾節點,不再指向下乙個節點 stude...

鍊錶學習 靜態鍊錶

struct linknode 鍊錶在指定位置插入與刪除元素不需要移動元素,只需要修改指標即可,而陣列刪除與加入元素則需要移動後面的元素,鍊錶相對於陣列來講,則多了指標域空間開銷,拿到鍊錶第乙個節點就相當於拿到整個鍊錶 鍊錶的分類 靜態鍊錶,動態鍊錶 單向鍊錶,雙向鍊錶,迴圈鍊錶,單向迴圈鍊錶,雙向...