安安程式設計思路記錄

2021-10-02 01:46:02 字數 915 閱讀 1561

單鏈表實現

對單鏈表中的元素進行排序

安安思想:自己建立乙個新鍊錶,先將原煉表中的第乙個元素插進來,然後依次取原鍊錶中的元素,遍歷新鍊錶(若要求遞增順序),找到比該元素大的那個節點,插到該節點的前面 。過完所有原煉表中的元素後,將原鍊錶的頭結點指向新鍊錶

實驗書思想:將原鍊錶拆開,第乙個只包含乙個元素,剩下的元素放到另乙個鍊錶裡面

銷毀單鏈表

實驗書思想:從前往後釋放

依次遍歷鍊錶,釋放pre指標

鏈棧實現

和單鏈表一樣,定義了乙個頭節點。把棧頂放到單鏈表的頭部,所以插入和刪除操作只能在頭部進行。判斷棧是否為空時只需要判斷頭結點的next指標是否為null

棧的應用:

1)遞迴

2)四則運算表示式求值

3)括號匹配

4)進製轉換

5)迷宮求解 

鏈佇列:不帶頭節點:隊頭指標指向隊的頭結點(第乙個元素),隊尾指標指向終端節點(最後乙個元素)

兩種實現都可以,只是加上頭節點處理更加簡單,所以一般用帶頭節點的形式來處理鏈佇列。

帶頭結點:入隊:在鍊錶尾部插入節點,記得將rear指標後移

出隊:在鍊錶頭部刪除,不需要移動front指標,因為front指標始終指向頭結點。若煉表除頭結點外只剩乙個元素時,則需將rear指標指向頭結點。

佇列的應用:

1)層次遍歷

2)緩衝區

通過字串的形式("a(b(d,e(h(j,k(l,m(,n))))),c(f,g(,i)))")構建二叉樹:

遍歷字串,當字串為字母時,建立新的節點,資料域為字母,指標域為空

建立之後,要將這個新節點掛在樹上,若樹為空,則作為根節點掛上,若樹不為空,需要掛在其他節點上。所以需要乙個堆疊來儲存當前節點需要掛的節點。當碰到左括號的時候,認為是左子樹;碰到逗號時,認為是右子樹;碰到右括號時,出棧。

javascript程式設計思路

程式是什麼?生活中的程式 宿舍保修 銀行開戶 解決生活中問題的步驟 流程 描述 自然語言 執行速度慢 計算機中的程式 解決問題的步驟描述,但是用的是計算機語言描述 計算機語言 執行速度快 什麼是程式設計 根據業務需要,制定或者編制解決問題的流程,編制程式的人應該是非常熟悉或者精通業務 編制電腦程式的...

python socket程式設計思路

tcp服務端 1 建立套接字,繫結套接字到本地ip與埠 socket.socket socket.af inet,socket.sock stream s.bind 2 開始監聽連線 s.listen 3 進入迴圈,不斷接受客戶端的連線請求 s.accept 4 然後接收傳來的資料,並傳送給對方資料...

Tcp ip程式設計 思路

基礎函式 客戶端socket 產生乙個 socket 填寫乙個sockaddr in結構體 使用connect進行伺服器連線 如果成功 則返回大於0的值 向伺服器傳送資訊需要send函式 send函式需要指定乙個 socket 緩衝區 傳送位元組數 recv函式同 send 函式recv可以指定本次...