本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。
一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。
如有侵权,请留言作删文处理。
课程视频链接:
数据结构与算法基础–第04周05–2.5.4双向链表3–双向链表的删除操作
📚 📌 📝 🔍 ⚠️ 😊 ⭐ 🔗 👋 ❓ 💬 🔹 🔸 🔖 ❗️ 💟 ➔
📚 【Week04】05_双向链表的删除
【算法步骤】
【算法描述】
// 删除带头结点的双向循环链表 L 的第 i 个元素,并用 e 返回
void ListDelete_Double(DoubleLinkList& L, int i, ElemType& e){
if(!(p=GetElemP_Double(L, i))){
return ERROR;
}
e = p->date;
p->prior->next = p->next;
p->next->prior = p->prior;
free(p);
return OK;
}// ListDelete_Double
时间复杂度:O(1)
如果需要查找删除位置,时间复杂度:O(n)