資料結構 線性表 鍊錶反轉

2021-09-07 07:40:24 字數 1147 閱讀 1721

鍊錶反轉有兩種常見方式。下面從圖中詳細解釋。其中帶有部分核心**,最後上完整**。

//首先定義三個變數

pnode pre = null;

pnode now = phead->pnext;

pnode next = null;

next = now->pnext;//先儲存下乙個節點

now->pnext = pre;//當前節點的next指標指向前乙個節點

pre = now;//前乙個節點賦值為當前節點

now = next;//當前節點賦值為下乙個節點

//一直遞迴直到找到尾節點

if(phead == null || phead->pnext == null)

return phead;

phead->pnext->pnext = phead;//讓當前節點的下乙個節點的指標指向當前節點

phead->pnext = null;//讓當前節點的下乙個節點指向null

再來一步

/*

**反轉鍊錶**/

#include

#include

#include

using

namespace

std;

typedef

struct

nodenode, *pnode;//

node等價於struct node,pnode等價於struct node*

//列印鍊錶所有元素

void

print_list(pnode phead)

cout

//建立鍊錶

pnode create_list()

pnow->pnext =null;

return

phead;}//

迭代反轉鍊錶

void

reverse_list(pnode phead)

//最後把頭結點指向新生成鍊錶的頭

phead->pnext =pre;

return; }

//遞迴反轉鍊錶

pnode reverse_list2(pnode phead)

intmain()

資料結構 線性表 鍊錶

在之前了解完什麼是資料結構之後 資料結構 線性表 順序表 陣列 我們再來看看線性結構另外一種實現方式 鍊錶順序表中的鍊錶沒有物理上的連續儲存要求,只需要在儲存資料時通過 鏈 的方式將資料進行連線,而這個 鏈 的實現就是通過指標來實現的。鍊錶的連續儲存方式 對於抽象資料型別來說,每一種資料結構都有自己...

資料結構 線性表(順序表 鍊錶)

線性表 1 線性表是一種邏輯結構,表示一種一對一的邏輯關係,除首節點和尾節點,每個結點只有乙個前驅結點和乙個後繼結點 2 兩種實現的物理結構 順序儲存,鏈式儲存 順序表 1 定義 用一組位址連續的儲存單元,一次儲存線性表中的元素,使得邏輯位置相鄰的元素物理位置也相鄰。2 特點 順序表元素的位序從1開...

資料結構 線性表 鍊錶實現

ifndef chain h define chain h include using namespace std vs平台下自己定義了nullptr null 0 但是在gcc下沒有定義 ifndef nullptr define nullptr 0 endif 鍊錶的節點元素類 template...