資料結構 03 鍊錶Linked List

2022-08-20 14:27:14 字數 1321 閱讀 4541

方法一:頭插法

void reverse(listnode* root) 

}

方法二:雙指標法(迭代法)

void reverse(listnode* root) 

root->next = p2;

}

方法三:遞迴法

listnode* reverse(listnode* root) 

listnode* ans = reverse(root->next);

root->next->next = root;

root->next = null;

return ans;

}

現有k個公升序整型鍊錶,要求將這k個鍊錶合併為乙個公升序鍊錶。

設定一條主鍊錶,將該主鍊錶與鍊錶陣列中的每乙個元素進行雙有序鍊錶合併。

listnode* merge2lists(listnode* a, listnode* b) 

listnode* root = nullptr, * p = nullptr;

while (a != nullptr && b != nullptr)

else

a = a->next;

}else if (a->val > b->val)

else

b = b->next;}}

if (a != nullptr)

else if (b != nullptr)

return root;

}listnode* mergeklists(vector& lists)

return ans;

}

解法一:標記陣列

vector* josephus(int n, int m) 

} ans->push_back(loc);

v[loc] = 1;

count++;

}}

解法二:迴圈鍊錶

vector* josephus(listnode* root, int x) 

ans->push_back(p->val);

pre->next = p->next;

delete p;

p = pre->next;

} while (p != pre);

ans->push_back(p->val);

delete p;

return ans;

}

資料結構03 鍊錶

1.鍊錶是以節點的方式儲存的,鏈式儲存 2.每個節點包含data域 自身的數值 和next域 指向下個節點的位置 3.每個節點不一定是連續的 4.鍊錶分帶頭節點的鍊錶和不帶頭節點的鍊錶 1.定義節點 定義節點 class data02 public data02 int id,string name...

資料結構03 靜態鍊錶

靜態鍊錶 對靜態鍊錶進行初始化相當於初始化陣列 status initlist staticlinklist space status listinsert staticlinklist l,int i elemtype e j malloc sll l if j l j cur l k cur l...

資料結構03 鍊錶之單鏈表

鍊錶帶頭結點和不帶頭結點的區別?完成單鏈表的以下基本操作 完整 鍊錶的結構非常多樣,以下情況組合起來就有8種鍊錶結構 單向 雙向 帶頭 不帶頭 迴圈 非迴圈 鍊錶的節點 typedef struct slistnode node,pnode 鍊錶的結構,給乙個頭指標儲存鍊錶第乙個節點的位址 type...