行路難 開始漫漫程式設計路

2021-09-27 17:55:23 字數 1768 閱讀 3859

大一學習了c語言課程之後,對程式設計還是有些興趣的,用**解決一些小問題很滿足的,尤其是在除錯成功沒有報出奇奇怪怪的錯誤的時候。最興奮的自然是通過了全部的測試樣例,感覺整個人飄飄然嘻嘻!回首大一的c語言課程,真的是入門級的簡單(除了函式、指標、結構體哈),有些是永恆的難點,不管在哪個領域。

一門神奇的課在大二開展,老師把課生動地講成三部曲:邏輯結構、儲存結構、演算法,節節如此,課課亦然。開始急於看到所謂的**功效,不知天高地厚地給老師寫了郵件說考慮現場程式設計,才得知這門課更重要的是思維,此刻突然想複習資料結構了,安排上!第一次上機漏洞百出,不過很感謝老師的講解,下附心得感悟和部分**嘻嘻!

順序表逆置

資料順序存入陣列中,我們逆向輸出即可達到逆置效果;

void

invert

(sequenlist*l)

printf

("\n");

}

單鏈表逆置開始思考的時候不知從頭斷還是從尾斷,從頭斷開之後想的是找不到下乙個元素了,從未斷開之後則找不到上乙個元素了。後來也沒有想出來,借鑑了同學的**。

她使用了兩個指標,乙個依次指向單鏈表的每乙個元素,另乙個進行神奇的逆置操作,相當於把相鄰元素斷開,把後乙個元素放到前乙個元素前面達到逆置的目的。

這一題中對我來說是頭結點的理解不夠,鍊錶第乙個結點的位置存放在頭結點的指標域中,開闢出頭結點的位置後要將頭結點的指標域先指向空,這兩點明白之後才真正理解了頭插法;

void

invert

(linklist *head)

}

分解單鏈表分類標準不難,但是難的是明確指標到底指到了**。在學習的時候應該牢記指標指向的是乙個位址,不可複製;

//新增按字母、數字、其它字元分解單鏈表演算法

void

resolve

(linklist*head,linklist*letter,linklist*digit,linklist*other)

elseif(

((p->data)

>=

'a'&&

(p->data)

<=

'z')||(

(p->data)

>=

'a'&&

(p->data)

<=

'z')

)else

p=p->next;

pl->next=letter;

pd->next=digit;

po->next=other;

}}

判斷字串是否中心對稱在迴圈的時候要像計算機一樣笨笨地演練一遍,檢查計數的變數初始值或者進入判斷時的值有沒有達到預期。

//新增判字串是否中心對稱演算法

intsymmetry

(linklist*head,stack*s)

else

n++;}

else

//字串為奇數,入棧一半後跳過最中間的數出棧與後半部分比較

else

if(n<

(length

(head)/2

)+1)

n++;}

p=p->next;

//指向下乙個元素

}return temp;

}

願晴空萬里,沒有暴風雨

行路難(SPFA 前驅記錄)

與其留戀,不如灑脫。nemt2018後的首題祭 題目來自洛谷p2832,難度 提高 省選 自以為應該是 普及 提高 的黃題。題目概述 給定一張有向圖,在圖上每進行一次移動,圖的所有邊權都會在原基礎上 1,求算從1到n點的最小邊權和,並輸出這個最短路。q 那我和節點一樣,也開乙個時間佇列queue i...

洛谷P2832 行路難

題面 思路 最短路問題。加上疲勞度看似很難,但只要用乙個記錄疲勞度的陣列就好啦,另外還需要記錄路徑。include include include include include include define fill a memset a,0x3f3f3f,sizeof a define haha...

開始不難,堅持才難

都說萬事開頭難,可堅持更難,正因為堅持如此困難,所以開頭真的不算難。很多事情,說開始就開始了,有時候就是一句話,乙個念頭,但堅持下來就必須不斷地付出,努力,在困難面前一點點變得強大。從小到大,發過多少弘誓大願,如果真有食言而肥,如今怕早已臃腫不堪。我有時候自欺欺人的把沒有堅持下去的東西歸為異類,貼上...