導航:首頁 > 源碼編譯 > 刪除演算法原理

刪除演算法原理

發布時間:2023-08-04 03:42:47

❶ 順序表、單鏈表的刪除演算法

單鏈表的刪除操作是指刪除第i個結點,返回被刪除結點的值。刪除操作也需要從頭引用開始遍歷單鏈表,直到找到第i個位置的結點。如果i為1,則要刪除第一個結點,則需要把該結點的直接後繼結點的地址賦給頭引用。對於其它結點,由於要刪除結點,所以在遍歷過程中需要保存被遍歷到的結點的直接前驅,找到第i個結點後,把該結點的直接後繼作為該結點的直接前驅的直接後繼。刪除操作如圖

單鏈表的刪除操作示意圖

刪除操作的演算法實現如下:
public T Delete(int i)
{
if (IsEmpty()|| i < 0)
{
Console.WriteLine("Link is empty or Position is error!");
return default(T);
}
Node q = new Node();
if (i == 1)
{
q = head;
head = head.Next;
return q.Data;
}
Node p = head;
int j = 1;
while (p.Next != null&& j < i)
{
++j;
q = p;
p = p.Next;
}
if (j == i)
{
q.Next = p.Next;
return p.Data;
}
else
{
Console.WriteLine("The ith node is not exist!");
return default(T);
}
}
演算法的時間復雜度分析:單鏈表上的刪除操作與插入操作一樣,時間主要消耗在結點的遍歷上。如果表為空則不進行遍歷。當表非空時,刪除第i個位置的結點, i等於1遍歷的結點數最少(1個),i等於n遍歷的結點數最多(n個,n為單鏈表的長度),平均遍歷的結點數為n/2。所以,刪除操作的時間復雜度為O(n)。

閱讀全文

與刪除演算法原理相關的資料

熱點內容
黑馬程序員路徑大全 瀏覽:998
saas平台PHP 瀏覽:333
雲伺服器科學計算配置怎麼選 瀏覽:649
jar解壓命令 瀏覽:609
php正則問號 瀏覽:299
無線已加密不可上網是怎麼了 瀏覽:464
什麼app可以免費做手機 瀏覽:375
異性下載什麼app 瀏覽:680
51單片機程序單步視頻 瀏覽:241
家庭寬頻如何連接伺服器 瀏覽:119
汽車高壓泵解壓 瀏覽:772
上門正骨用什麼app 瀏覽:760
安卓為什麼免費使用 瀏覽:397
加密貨幣都有哪些平台 瀏覽:628
python和matlab難度 瀏覽:390
python爬蟲很難學么 瀏覽:574
小米解壓積木可以組成什麼呢 瀏覽:816
為什麼滴滴出行app還能用 瀏覽:566
怎麼升級手機android 瀏覽:926
php權威編程pdf 瀏覽:998