如果乙個節點將指向另乙個節點的指標作為資料成員,那麼多個這樣的節點可以連線起來,只用乙個變數就能夠訪問整個節點序列。這樣的節點序列就是最常用的鍊錶實現方法。 鍊錶是一種由節點組成的資料結構,每個節點都包含某些資訊以及指向鍊錶中另乙個節點的指標。如果序列中的節點只包含指向後繼節點的鏈結,該鍊錶就成為單向鍊錶。中另乙個節點的指標。如果序列中的節點只包含指向後繼節點的鏈結,該鍊錶就成為單向鍊錶。
下圖是除錯的截圖,可以看出,鍊錶的儲存就相當於乙個鏈,通過next串聯起來
文中涉及**
intsllist.h
intsllist.cpp#ifndef structure_intsllist_h
#define structure_intsllist_h
class intsllnode
intsllnode(int el, intsllnode *ptr = 0)
int info;
intsllnode *next;
};class intsllist
~intsllist();
int isempty()
void addtohead(int);
void addtotail(int);
int deletefromhead();
int deletefromtail();
void deletenode(int);
bool isinlist(int) const;
private:
intsllnode *head, *tail;
};#endif //structure_intsllist_h
力扣有個單鏈表的習題可以練習下:#include #include "intsllist.h"
intsllist::~intsllist()
}void intsllist::addtohead(int el)
void intsllist::addtotail(int el) else
head = tail = new intsllnode(el);
}int intsllist::deletefromhead() else
delete tmp;
return el;
}int intsllist::deletefromtail() else
return el;
}void intsllist::deletenode(int el) else if (el == head->info) else };}
}bool intsllist::isinlist(int el) const
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例:輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 輸出:7 -> 0 -> 8 原因:342 + 465 = 807
資料結構之單向鍊錶
結構體 指標 更強大的資料結構 分類 1 頭指標式鍊錶 不實用很麻煩 2 頭結點式鍊錶 常用 節點 typedef int data 常用操作 1建立 2摧毀3增加 4刪除5查詢 6修改7逆序 ifndef linklist h define linklist h typedef enum bool...
資料結構與演算法 C語言 單向鍊錶1
將儲存資料元素資訊的域稱為資料域,將儲存直接後繼位置的域稱為指標域。指標域中儲存的資訊稱做指標或鏈。這兩部分資訊組成資料元素稱為結點。1 頭指標是指向鍊錶第乙個結點的指標。注,並不一定是頭結點的指標。無論鍊錶是否為空,頭指標均不為空。2 頭結點,為了操作的統一和方便而設立的,放在第乙個元素結點之前,...
資料結構之單向迴圈鍊錶
基於單向鍊錶 將最後乙個節點 指向 頭結點 ifndef cirlinklist h define cirlinklist h typedef enum bool typedef int data typedef struct node node typedef struct list list 建...