算法競賽階段二-數據結構(36)數據結構雙向鏈表模擬實現

//#include<bits/stdc++.h>
#include<iostream>
using namespace std;
const int N=1e5+10;
//定義
int e[N],pre[N],ne[N],h,id;
int mp[N];
//頭插
// ?兵 ? ? ? ? ?y
// ? ? ? ?x?
void push_front (int x)
{
id++;
e[id]=x;
mp[x]=id;
pre[id]=h;
ne[id]=ne[h];
//先修改新節點?
//?? ? pre[ne[id]]=id; ? ?ne【id】就是ne【h】看上邊,剛賦的值?
pre[ne[h]]=id;
//?? ? pre[id]=h;
ne[h]=id; //最后改這個?

}?
// 遍歷打印,無視pre即可
void print()
{
for(int i=ne[h];i;i=ne[i])
{
cout<<e[i]<<" ";
}cout<<endl;
}?
// 按值查找,mp數組優化·
int find(int x)
{
return (mp[x]);
}?
// 任意位置(存儲位置,下標)之后插入
// ? p
// ? 1 ? ? ? 3
// ? ? ? x ?
void insert(int p,int x)
{
id++;
e[id]=x;
mp[x]=id;
pre[id]=p;
ne[id]=ne[p];
//?? ?pre[id]=p;
pre[ne[p]]=id;
ne[p]=id;
}?
//任意位置(存儲位置,下標)之前插入
// ? ? ? ? ? ? ? ?p
// ? ? ?1 ? ? ? ? 2
// ? ? ? ? ? x?
void insret_front(int p,int x)
{
id++;
e[id]=x;
mp[x]=id;

ne[id]=p;
pre[id]=pre[p];
ne[pre[p]]=id;
pre[p]=id;
}
//刪除任意位置元素
// ? ? ? ? p
// ? 1 ? ? ? ? ?2
//?? ? ? ? ? x?
void erase(int p)
{
//?? ?mp[p]=0; 這個不對?
mp[e[p]]=0;

ne[pre[p]]=ne[p];
pre[ne[p]]=pre[p];
}?

int main()
{
for(int i=0;i<6;i++)
{
push_front(i);

}
print();
cout<<?? ?find(0)<<endl;
cout<<?? ?find(2)<<endl;
insert(1,33);
print();
insert(7,88);
print();
cout<<?? ?find(33)<<endl;
cout<<?? ?find(88)<<endl;
insret_front(1,66);
print();
insret_front(3,33);
print();
insret_front(8,100);
print();
insret_front(9,666);
print();?
erase(1);
print();?
cout<<?? ?find(100)<<endl;
erase(11);
print();?
erase(7);
print();?
erase(find(666));
print();?
return 0;
}?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916921.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916921.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916921.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

津發科技帶你了解皮膚電信號中的SCL與SCR

皮膚電&#xff08;Electrodermal Activity, EDA&#xff09;作為一種非常容易獲取的基本生理信號&#xff0c;可以很好地量化我們的情緒反應&#xff0c;被廣泛應用于情感識別研究中。它代表機體受到刺激時皮膚電傳導的變化。皮膚電反應作為交感神經系統功能的直接指標&#x…

spark的broadcast variables

在 Spark 中&#xff0c;廣播變量&#xff08;Broadcast Variables&#xff09; 是一種特殊類型的共享變量&#xff0c;用于高效地在集群中的所有節點間分發大型只讀數據集。它解決了 Spark 任務中頻繁傳輸重復數據的性能問題&#xff0c;特別適用于需要在多個任務中重用相同數…

Python爬蟲實戰:研究Haul庫相關技術構建電商數據采集與分析系統

1. 引言 1.1 研究背景與意義 隨著電子商務的迅速發展,電商平臺上的商品數據呈現爆炸式增長。這些數據蘊含著豐富的商業價值,如消費者行為分析、市場趨勢預測、競爭對手監測等。然而,如何從海量的電商數據中獲取有價值的信息,成為當前電商企業面臨的重要挑戰。 網絡爬蟲技…

Java:高頻面試知識分享1

一、Java 語言核心特性&#xff08;面向對象編程&#xff09;核心知識點梳理&#xff1a;面向對象三大特性&#xff1a;封裝&#xff1a;隱藏對象內部實現&#xff0c;通過 public 方法暴露接口&#xff08;例&#xff1a;類的 private 字段 get/set 方法&#xff09;。繼承&a…

MybatisPlus-核心功能

目錄 條件構造器 QueryWrapper UpdateWrapper LambdaQueryWrapper 自定義SQL 基本用法 多表關聯 Service接口 CRUD 基本用法 Lambda 批量新增 條件構造器 除了新增以外&#xff0c;修改、刪除、查詢的SQL語句都需要指定where條件。因此BaseMapper中提供的相關方法…

RHCE綜合項目:分布式LNMP私有博客服務部署

一、項目概述本次項目基于LNMP&#xff08;linux&#xff0c;nginx&#xff0c;mariadb&#xff0c;php&#xff09;搭建了一個私有的博客平臺&#xff0c;本篇博客詳細記錄了該博客平臺的服務部署全流程。在該項目中&#xff0c;使用了兩臺linux&#xff08;openeuler&#xf…

5種安全方法:如何刪除三星手機上的所有內容

隨著新的三星設備不斷推出&#xff0c;在出售或捐贈舊手機之前&#xff0c;徹底清除舊手機上的數據以保護隱私至關重要。許多人不知道的是&#xff0c;簡單的刪除操作并不能完全清除三星設備上的數據&#xff0c;被刪除的文件可能會處于不可見狀態。本文介紹了如何徹底刪除三星…

Vue 3 入門教程 2- Vue 組件基礎與模板語法

一、Vue 組件基礎在 Vue 中&#xff0c;組件是構建用戶界面的基本單位&#xff0c;它可以將頁面拆分成多個獨立、可復用的部分。一個 Vue 組件通常以 .vue 文件名結尾&#xff0c;包含三個核心部分&#xff1a;模板&#xff08;Template&#xff09;、腳本&#xff08;Script&a…

Linux 進程管理與計劃任務詳解

Linux 進程管理與計劃任務詳解 一、程序與進程的基本概念 程序&#xff1a;保存在外部存儲介質中的可執行機器代碼和數據的靜態集合&#xff0c;是靜態的文件實體進程&#xff1a;在 CPU 及內存中處于動態執行狀態的計算機程序&#xff0c;是程序的動態執行實例關聯關系&#x…

分層解耦(Controller,Service,Dao)

1. 三層架構核心職責層級職責說明關鍵技術 / 注解Controller&#xff08;控制器&#xff09;1. 接收前端請求&#xff08;HTTP&#xff09; 2. 封裝參數、校驗 3. 調用 Service 處理業務 4. 返回視圖 / 數據給前端Controller、GetMapping等Service&#xff08;業務層&#xff0…

鎂金屬接骨螺釘注冊檢測:骨科植入安全的科學基石

在骨科治療領域&#xff0c;鎂金屬接骨螺釘憑借其可降解性與生物相容性&#xff0c;成為傳統金屬植入物的革新替代方案。然而&#xff0c;作為Ⅲ類高風險無源植入器械&#xff08;分類編碼13-01-01&#xff09;&#xff0c;其注冊檢測需覆蓋生物相容性、化學表征、降解性能、力…

模具開發和管理系統(c#)

以前編寫的一個管理模具開發和進度的程序&#xff0c;可以跟蹤模具開發進度&#xff0c;可以查詢模具具體情況&#xff0c;也可以用水晶報表查詢。OS&#xff1a;microsoft windows IDE&#xff1a;microsoft visual studio programming language&#xff1a;C# DataBase&#…

【WRF-Chem 實例1】namelist.input 詳解- 模擬CO2

目錄 &time_control(時間控制) &physics(物理過程參數化方案) &fdda(四維數據同化) 工作機制簡述 &dynamics(WRF 動力核心的數值方法和選項) &bdy_control(邊界控制設置) &chem(WRF-Chem 主要化學設置) &namelist_quilt(并行 I/O 控制…

數據中心-時序數據庫InfluxDB

目錄 一、InfluxDB介紹 1.1 什么是InfluxDB&#xff1f; 1.2 應用場景 1.3 特點 1.4 版本差異 二、數據模型和存儲架構 2.1 相關概念 2.2 存儲架構 三、InfluxDB基礎操作 3.1 數據庫操作 3.2 數據表操作 顯示所有表 新建表 刪除表 3.3 數據保存策略 查看保存策…

webpack-高級配置

多入口文件 如何輸出多個html文件 輸入位置 需要寫兩個entryoutput位置也要改一下 加一個name避免重名 在生成html時 要根據每一個入口都寫一個插件 并且chunks要寫好 當前html引入哪些文件如何抽離壓縮css文件 安裝插件在rules里面添加插件plugins中添加css抽離代碼壓縮css抽離…

WinForm組件之Label 控件

Label 控件Label 控件是 WinForm 中最基礎、最常用的控件之一&#xff0c;主要用于在界面上顯示文本信息&#xff0c;通常作為說明、提示或標題&#xff0c;不直接接受用戶輸入。它是構建用戶界面的基礎組件&#xff0c;在引導用戶操作、展示狀態信息等方面發揮重要作用。Label…

鴻蒙中相冊權限彈窗

model.json5配置權限{"name": ohos.permission.READ_MEDIA,"reason":"$string:permission_reason_IMG","usedScene": {}}ui使用const url albumClass.onRequestCameraPermission()類import { abilityAccessCtrl, common, PermissionR…

智能車輛熱管理測試方案——提升效能與保障安全

車輛熱管理在能源危機出現、汽車排放法規日益嚴格以及人們對汽車舒適性要求更高的背景下應運而生。將各個系統或部件如冷卻系統、潤滑系統和空調系統等集成一個有效的熱管理系統&#xff1b;控制和優化車輛的熱量傳遞過程&#xff0c;保證各關鍵部件和系統良好運行&#xff1b;…

如何提升 TCP 傳輸數據的性能?詳解

TCP 會保證每一個報文都能夠抵達對方&#xff0c;它的機制是這樣&#xff1a;報文發出去后&#xff0c;必須接收到對方返回的確認報文 ACK&#xff0c;如果遲遲未收到&#xff0c;就會超時重發該報文&#xff0c;直到收到對方的 ACK 為止 所以&#xff0c;TCP 報文發出去后&…

WiFi連接簡單流程

WiFi連接流程與Debug方法一、WiFi連接全流程與詳細日志解讀 WiFi連接是一個多階段、跨層次的復雜過程&#xff0c;涉及物理層、鏈路層、網絡層和應用層的多種協議協作。整個流程包括AP初始化、終端掃描、認證、關聯、四次握手、DHCP獲取IP、網絡可用與后續服務。1. AP初始化與參…