鍊錶之頭插法和尾插法

2021-10-10 16:48:06 字數 1521 閱讀 2597

頭插法:生成的鍊錶和我輸入的資料順序是相反的,所以又稱逆序建表法。

例如:e d c b a

建成的鍊錶就是

head->a->b->c->d->e

演算法步驟:

①建立乙個只有頭結點的空鍊錶。

②根據待建立鍊錶的元素個數n,迴圈n次執行以下操作:

●生成乙個新結點*p;

●輸入元素值賦給新結點*p的資料域;

●將新結點*p插入到頭結點之後。

演算法描述:

void

creatlist_h

(linklist &l,int n)

}

尾插法:生成的鍊錶和我輸入的資料順序是一致的,所以又稱順序建表法。

例如:e d c b a

建成的鍊錶就是

head->e->d->c->b->a

演算法步驟:

①建立乙個只有頭結點的空鍊錶。

②尾指標r初始化,指向頭結點。

③根據建立鍊錶的元素個數n,迴圈n次執行以下操作:

●生成乙個新結點*p;

●輸入元素值賦給新結點*p的資料域;

●將新結點*p插入到尾結點*tail之後;

●尾指標tail指向新的尾結點*p。

演算法描述:

void

creatlist_r

(linklist &l,int n)

}

頭插法:生成的鍊錶和我輸入的資料順序是相反的,所以又稱逆序建表法。

例如:e d c b a

建成的鍊錶就是

head->a->b->c->d->e

演算法步驟:

①建立乙個只有頭結點的空鍊錶。

②根據待建立鍊錶的元素個數n,迴圈n次執行以下操作:

●生成乙個新結點*p;

●輸入元素值賦給新結點*p的資料域;

●將新結點*p插入到頭結點之後。

演算法描述:

void

creatlist_h

(linklist &l,int n)

}

尾插法:生成的鍊錶和我輸入的資料順序是一致的,所以又稱順序建表法。

例如:e d c b a

建成的鍊錶就是

head->e->d->c->b->a

演算法步驟:

①建立乙個只有頭結點的空鍊錶。

②尾指標r初始化,指向頭結點。

③根據建立鍊錶的元素個數n,迴圈n次執行以下操作:

●生成乙個新結點*p;

●輸入元素值賦給新結點*p的資料域;

●將新結點*p插入到尾結點*tail之後;

●尾指標tail指向新的尾結點*p。

演算法描述:

void

creatlist_r

(linklist &l,int n)

}

鍊錶操作 頭插法尾插法

單鏈表的插入操作,包括頭插和尾插,兩種的時間複雜度都為o n 單鏈表插入操作 頭插 尾插 include include using namespace std 定義結點資料型別 typedef int elemtype 結點定義 typedef struct lnode lnode,linklis...

頭插法 尾插法建立鍊錶

鍊錶是線性表的一種,一般來說鍊錶就是一系列的儲存資料元素的單元通過指標串接起來形成的,常見的鍊錶是單鏈表和雙鏈表,乙個域用於資料元素的儲存,另乙個或兩個域是指向其他單元的指標。對於單鏈表來說,指標域是乙個,指向當前節點的後繼節點 雙鏈表來說,乙個指標域指向當前節點的後繼節點,另外乙個指標域指向當前節...

頭插法和尾插法

頭插法 初始化頭節點 lk init headnode 資料域可以不用維護 headnode next null return headnode 頭插法 void insert linklist lk headnode,int length int val 0 int index 0 for int...