單鏈表實現
對單鏈表中的元素進行排序
安安思想:自己建立乙個新鍊錶,先將原煉表中的第乙個元素插進來,然後依次取原鍊錶中的元素,遍歷新鍊錶(若要求遞增順序),找到比該元素大的那個節點,插到該節點的前面 。過完所有原煉表中的元素後,將原鍊錶的頭結點指向新鍊錶
實驗書思想:將原鍊錶拆開,第乙個只包含乙個元素,剩下的元素放到另乙個鍊錶裡面
銷毀單鏈表
實驗書思想:從前往後釋放
依次遍歷鍊錶,釋放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可以指定本次...