C語言學習日記 單鏈表2

2021-09-28 14:25:19 字數 947 閱讀 1234

首先學習乙個演算法之前,我覺得必須弄清楚演算法的思想,知道它是如何去運作的,都主要分為那些步驟,特別是像遞迴這種重複性比較強的一些步驟操作。

在確定好大致的框架之後,就可以具體的落實**了

首先定義函式以及它的相關的引數

這裡之所以要將函式返回值定義為 linklist型的結構指標是因為,下一步想要將修改後的鍊錶輸出出來,下面是具體**實現

linklist del_x(linklist l, elemtype x)

else if (l->next->data == x)//頭節點無資料,所以跳過頭節點

else

return q;

}演算法的時空分析,由於遞迴需要借助棧來暫存函式遞迴的結果,所以空間複雜度為o(n),鍊錶找到對應x值後仍然要遞迴至鏈尾,所以它的時間複雜度也為o(n)。

實現刪除單鏈表中元素值最小的節點(假設最小值唯一)

要想找到最小值必須要遍歷鍊錶並且進行比較,同時為了能夠快捷的刪除該節點則需要記錄該節點的位置以及其直接前驅節點

linklist del_min(linklist l)

pre = p;//記錄前驅節點位置

p = p->next;

}premin->next = min->next; //刪除最小值節點

free(min);

return l;

}演算法時空複雜度分析,鍊錶一次遍歷所以時間複雜度為o(n),定義了兩個指標分指向兩個節點,所以空間複雜度為o(1);

c語言學習日記(九)

上三角矩陣指主對角線以下的元素都為0的矩陣 主對角線為從矩陣的左上角至右下角的連線。本題要求編寫程式,判斷乙個給定的方陣是否上三角矩陣。輸入格式 輸入第一行給出乙個正整數t,為待測矩陣的個數。接下來給出t個矩陣的資訊 每個矩陣資訊的第一行給出乙個不超過10的正整數n。隨後n行,每行給出n個整數,其間...

C語言學習日記8

4.1.1 程式執行為什麼需要記憶體?4.1.1.1 計算機程式執行的目的。4.1.1.2 計算機程式執行過程 4.1.1.3 馮諾依曼結構和哈佛結構 馮諾依曼結構是 資料和 放在一起。哈佛結構是 資料和 分開存在。什麼是 函式 什麼是資料 全域性變數 區域性變數。4.1.1.4 動態記憶體dram...

C語言學習日記6

1 資料型別 1.1 基本資料型別 資料型別分2類 基本資料型別 復合型別 基本型別 char short int long float double 復合型別 陣列 結構體 共用體 類 c 1.1.1記憶體占用與sizeof運算子 資料型別就好像乙個個的模子,這個模子例項化出c語言的變數。變數儲存...