国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng)及方法

      文檔序號(hào):6578837閱讀:271來源:國知局
      專利名稱:一種基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng)及方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及結(jié)構(gòu)化語言編程技術(shù),尤其涉及一種基于結(jié)構(gòu)化語言的鏈表管 理系統(tǒng)及方法。
      背景技術(shù)
      在軟件開發(fā)中,鏈表根據(jù)需要?jiǎng)討B(tài)分配內(nèi)存空間,是一種動(dòng)態(tài)地進(jìn)行存儲(chǔ) 分配的結(jié)構(gòu),圖1是一種典型的雙向鏈表結(jié)構(gòu)示意圖,如圖l所示,該雙向鏈
      表有n個(gè)節(jié)點(diǎn),節(jié)點(diǎn)0是鏈表的頭部,節(jié)點(diǎn)n是鏈表的尾部,這兩個(gè)節(jié)點(diǎn)不用 來存儲(chǔ)數(shù)據(jù),只用來標(biāo)識(shí)鏈表的起止位置,中間n-2個(gè)節(jié)點(diǎn)可以用來存儲(chǔ)數(shù)據(jù)。 每個(gè)節(jié)點(diǎn)具有三個(gè)屬性數(shù)據(jù)、上一個(gè)節(jié)點(diǎn)指針和下一個(gè)節(jié)點(diǎn)指針,其中,數(shù)
      據(jù)就是鏈表管理的數(shù)據(jù);上一個(gè)節(jié)點(diǎn)指針存放著與該節(jié)點(diǎn)前面相鄰的節(jié)點(diǎn)的內(nèi) 存地址,對于節(jié)點(diǎn)0來說,該地址為空值;下一個(gè)節(jié)點(diǎn)指針存放著與該節(jié)點(diǎn)后 面相鄰的節(jié)點(diǎn)的內(nèi)存地址,對于節(jié)點(diǎn)n來說,該地址為空值。
      目前,面向?qū)ο笳Z言提供了這些鏈表的操作方法和參考實(shí)現(xiàn),但是在結(jié)構(gòu) 化語言中,沒有一種統(tǒng)一的處理系統(tǒng)來實(shí)現(xiàn)鏈表操作。軟件開發(fā)人員必須自己 實(shí)現(xiàn)與自己業(yè)務(wù)相關(guān)的鏈表操作,如鏈表創(chuàng)建、鏈表刪除以及節(jié)點(diǎn)添加、節(jié)點(diǎn) 刪除、節(jié)點(diǎn)更新、節(jié)點(diǎn)查詢等。
      由于在不同項(xiàng)目中4吏用鏈表,需要有各自的管理代碼,所以,現(xiàn)有結(jié)構(gòu)化 語言實(shí)現(xiàn)鏈表管理時(shí),重復(fù)代碼多,不僅占用了代碼空間,而且可維護(hù)性及擴(kuò) 展性比較差,此外,大量的鏈表管理代碼延長了軟件開發(fā)時(shí)間,降低了軟件開 發(fā)效率,從而使得鏈表的使用成本變大,軟件開發(fā)效率低。

      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明的主要目的在于提供一種基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng)及方法,能夠簡化代碼,提高代碼可維護(hù)性及擴(kuò)展性,且提高軟件開發(fā)效率。 為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
      一種基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng),包括環(huán)境模塊、鏈表管理模塊、
      存儲(chǔ)模塊,其中,
      環(huán)境模塊用于在操作系統(tǒng)啟動(dòng)時(shí),確定與鏈表處理相關(guān)的接口 ; 鏈表管理模塊,用于根據(jù)來自客戶程序的鏈表處理請求,調(diào)用環(huán)境模塊中 的接口和/或存儲(chǔ)模塊中的節(jié)點(diǎn)比較接口 ,對存儲(chǔ)模塊中存儲(chǔ)的鏈表進(jìn)行處理; 存儲(chǔ)模塊,用于存儲(chǔ)鏈表,以及鏈表的節(jié)點(diǎn)比較接口。 一種基于結(jié)構(gòu)化語言的鏈表管理方法,包括
      操作系統(tǒng)啟動(dòng)時(shí),確定與鏈表處理相關(guān)的接口;
      客戶程序運(yùn)行過程中需要進(jìn)行鏈表處理時(shí),客戶程序?qū)㈡湵硖幚碚埱蟀l(fā)送 至鏈表管理模塊;
      鏈表管理模塊根據(jù)所接收的鏈表處理請求,調(diào)用所述與鏈表處理相關(guān)的接 口和/或節(jié)點(diǎn)比較接口對鏈表進(jìn)行處理。
      所述與鏈表處理相關(guān)的接口包括內(nèi)存分配接口、信號(hào)量分配接口;
      所述鏈表處理請求為鏈表創(chuàng)建請求,其攜帶的鏈表創(chuàng)建參數(shù)包括鏈表類 型,節(jié)點(diǎn)數(shù)據(jù)、節(jié)點(diǎn)比較接口;
      所述鏈表管理模塊對鏈表進(jìn)行處理為
      調(diào)用內(nèi)存分配接口進(jìn)行內(nèi)存分配,并根據(jù)鏈表創(chuàng)建參數(shù)中攜帶的鏈表創(chuàng)建 參數(shù)創(chuàng)建鏈表;
      調(diào)用信號(hào)量分配接口分配關(guān)于所創(chuàng)建鏈表的信號(hào)量并存儲(chǔ); 為所創(chuàng)建的鏈表分配鏈表ID并存儲(chǔ),并將所述鏈表ID返回客戶程序。 所述與鏈表處理相關(guān)的接口包括內(nèi)存回收接口、信號(hào)量回收接口; 所述鏈表處理請求為鏈表刪除請求,其攜帶的鏈表刪除參數(shù)包括需要?jiǎng)h 除的《連表ID;
      所述鏈表管理模塊對鏈表進(jìn)行處理為 根據(jù)鏈表刪除參數(shù)中的鏈表ID查找需要?jiǎng)h除的鏈表;調(diào)用內(nèi)存回收接口釋放所述鏈表及鏈表中節(jié)點(diǎn)的內(nèi)存空間,并調(diào)用信號(hào)量 回收接口回收所刪除鏈表對應(yīng)的信號(hào)量; 向客戶程序返回鏈表刪除成功消息。
      所述與鏈表處理相關(guān)的接口包括內(nèi)存分配接口、信號(hào)量占有接口、信號(hào) 量釋放接口;
      所述鏈表處理請求為節(jié)點(diǎn)創(chuàng)建請求,其攜帶的節(jié)點(diǎn)創(chuàng)建參數(shù)包括鏈表ID 和節(jié)點(diǎn)數(shù)據(jù),其中,所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)數(shù)據(jù)數(shù)值和唯一標(biāo)識(shí)該數(shù)據(jù)的節(jié)點(diǎn) 數(shù)據(jù)標(biāo)識(shí);
      所述鏈表管理模塊對鏈表進(jìn)行處理為
      查找節(jié)點(diǎn)創(chuàng)建參數(shù)中鏈表ID對應(yīng)的鏈表,調(diào)用信號(hào)量占有接口,占有所述 鏈表的信號(hào)量;
      判斷所述鏈表中,需創(chuàng)建的節(jié)點(diǎn)是否已存在,需創(chuàng)建的節(jié)點(diǎn)已存在,向客 戶程序返回節(jié)點(diǎn)已存在消息,調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量; 需創(chuàng)建的節(jié)點(diǎn)不存在,調(diào)用內(nèi)存分配接口創(chuàng)建節(jié)點(diǎn),并向客戶程序返回所創(chuàng)建 節(jié)點(diǎn)的節(jié)點(diǎn)指針,調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量。
      所述判斷需創(chuàng)建的節(jié)點(diǎn)是否已存在為調(diào)用節(jié)點(diǎn)創(chuàng)建參數(shù)中鏈表ID所對應(yīng) 鏈表的節(jié)點(diǎn)比較接口 ,判斷所述鏈表中是否存在具有所述節(jié)點(diǎn)創(chuàng)建參數(shù)中的節(jié) 點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)。
      所述與鏈表處理相關(guān)的接口包括信號(hào)量占有接口、信號(hào)量釋放接口;
      所述鏈表處理請求為節(jié)點(diǎn)查詢請求,其攜帶的節(jié)點(diǎn)查詢參數(shù)包括鏈表ID、 含有節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)數(shù)據(jù);
      所述鏈表管理模塊對鏈表進(jìn)行處理為
      查找節(jié)點(diǎn)查詢參數(shù)中鏈表ID對應(yīng)的鏈表,調(diào)用信號(hào)量占有接口,占有所述 鏈表的信號(hào)量;
      調(diào)用所述鏈表的節(jié)點(diǎn)比較接口查詢節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)與節(jié)點(diǎn)查詢與節(jié)點(diǎn)查詢參 數(shù)中攜帶的含有節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)數(shù)據(jù)所對應(yīng)的節(jié)點(diǎn),并返回所述節(jié)點(diǎn)的節(jié) 點(diǎn)指針至客戶程序;調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量。
      所述與鏈表處理相關(guān)的接口包括信號(hào)量占有接口、信號(hào)量釋放接口;
      所述鏈表處理請求為節(jié)點(diǎn)更新請求,其攜帶的節(jié)點(diǎn)更新參數(shù)包括鏈表ID
      和需要更新的節(jié)點(diǎn)數(shù)據(jù),其中,所述節(jié)點(diǎn)數(shù)據(jù)具體包括需更新的節(jié)點(diǎn)數(shù)據(jù)數(shù)值
      和需更新節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí);
      所述鏈表管理模塊對鏈表進(jìn)行處理為
      查找節(jié)點(diǎn)更新參數(shù)中鏈表ID對應(yīng)的鏈表,調(diào)用信號(hào)量占有接口,占有所述 鏈表的信號(hào)量;
      在所述鏈表中查找需要更新的節(jié)點(diǎn),并將節(jié)點(diǎn)更新參數(shù)中需要更新的節(jié)點(diǎn) 數(shù)據(jù)更新至所述需要更新的節(jié)點(diǎn);
      向客戶程序返回更新成功消息,并調(diào)用信號(hào)量釋放接口,釋放所述鏈表的
      信號(hào)量。
      所述與鏈表處理相關(guān)的接口包括內(nèi)存回收接口、信號(hào)量占有接口、信號(hào) 量釋放接口;
      所述鏈表處理請求為節(jié)點(diǎn)刪除請求,其攜帶的節(jié)點(diǎn)刪除參數(shù)包括鏈表ID、 需要?jiǎng)h除節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí);
      所述鏈表管理模塊對鏈表進(jìn)行處理為
      查找節(jié)點(diǎn)刪除參數(shù)中鏈表ID對應(yīng)的鏈表,調(diào)用信號(hào)量占有接口,占有所述 鏈表的信號(hào)量;
      在所述鏈表中查找需要?jiǎng)h除的節(jié)點(diǎn);
      調(diào)用內(nèi)存回收接口刪除所述需要?jiǎng)h除的節(jié)點(diǎn),并向客戶程序返回刪除成功 消息,調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量。
      所述刪除需要?jiǎng)h除的節(jié)點(diǎn)為需要?jiǎng)h除的節(jié)點(diǎn)不是頭節(jié)點(diǎn)或者尾節(jié)點(diǎn),將 所述需要?jiǎng)h除的節(jié)點(diǎn)前面的節(jié)點(diǎn)和后面的節(jié)點(diǎn)的指針連接起來,再調(diào)用內(nèi)存回 收接口回收需要?jiǎng)h除的節(jié)點(diǎn)對應(yīng)的內(nèi)存;需要?jiǎng)h除的節(jié)點(diǎn)是頭節(jié)點(diǎn)或者尾節(jié)點(diǎn), 直接回收所述需要?jiǎng)h除的節(jié)點(diǎn)對應(yīng)的內(nèi)存。
      本發(fā)明基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng)及方法。在系統(tǒng)初始化時(shí),根據(jù)操作系統(tǒng)確定與鏈表管理相關(guān)的接口 ,在進(jìn)行鏈表處理時(shí),調(diào)用相應(yīng)的接口,并 結(jié)合鏈表處理參數(shù)便可實(shí)現(xiàn)對鏈表的處理。所以,本發(fā)明基于結(jié)構(gòu)化語言的鏈 表管理系統(tǒng)及方法,根據(jù)操作系統(tǒng)確定與鏈表管理相關(guān)的接口,在不同項(xiàng)目中, 通過調(diào)用相應(yīng)的接口,便可按照設(shè)定的處理流程實(shí)現(xiàn)鏈表管理,不需要分別編 寫代碼實(shí)現(xiàn)鏈表管理,從而,對于大規(guī)模的軟件項(xiàng)目開發(fā),本發(fā)明能夠明顯簡 化代碼、提高代碼可維護(hù)性和擴(kuò)展性,從而提高軟件開發(fā)效率。


      圖1為一種典型的雙向鏈表結(jié)構(gòu)示意圖2為本發(fā)明基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng)結(jié)構(gòu)圖; 圖3為本發(fā)明基于結(jié)構(gòu)化語言的鏈表管理方法流程圖; 圖4為本發(fā)明進(jìn)行鏈表創(chuàng)建時(shí)的方法流程圖; 圖5為本發(fā)明進(jìn)行鏈表刪除時(shí)的方法流程圖; 圖6為本發(fā)明進(jìn)行節(jié)點(diǎn)創(chuàng)建時(shí)的方法流程圖; 圖7為本發(fā)明進(jìn)行節(jié)點(diǎn)查詢時(shí)的方法流程圖; 圖8為本發(fā)明進(jìn)行節(jié)點(diǎn)更新時(shí)的方法流程圖; 圖9為本發(fā)明進(jìn)行節(jié)點(diǎn)刪除時(shí)的方法流程圖。
      具體實(shí)施例方式
      本發(fā)明的基本思想是在系統(tǒng)初始化時(shí),根據(jù)操作系統(tǒng)確定與鏈表管理相 關(guān)的接口,在進(jìn)行鏈表處理時(shí),調(diào)用相應(yīng)的接口,并結(jié)合鏈表處理參數(shù)便可實(shí) 現(xiàn)對鏈表的處理。
      下面結(jié)合附圖對技術(shù)方案的實(shí)施作進(jìn)一步的詳細(xì)描述。
      圖2為本發(fā)明基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng)結(jié)構(gòu)圖,如圖2所示,本發(fā) 明基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng)一般包括環(huán)境模塊21、鏈表管理模塊22、 存儲(chǔ)模塊23,其中,
      環(huán)境模塊21用于在操作系統(tǒng)啟動(dòng)時(shí),根據(jù)所述啟動(dòng)的操作系統(tǒng),確定與鏈表處理相關(guān)的接口;
      鏈表管理模塊22,用于根據(jù)來自客戶程序的鏈表處理請求,調(diào)用環(huán)境模塊
      21中的接口和/或存儲(chǔ)模塊23中存儲(chǔ)的節(jié)點(diǎn)比較接口,對存儲(chǔ)模塊23中存儲(chǔ)的
      鏈表進(jìn)行處理;
      存儲(chǔ)模塊23,用于存儲(chǔ)鏈表,以及鏈表的節(jié)點(diǎn)比較接口。 由于鏈表中節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)可以是標(biāo)準(zhǔn)類型,也可以是用戶自定義的復(fù)雜
      類型,所以,鏈表的節(jié)點(diǎn)比較接口不一定相同,每個(gè)鏈表對應(yīng)各自的節(jié)點(diǎn)比較
      接口,鏈表的節(jié)點(diǎn)比較接口作為鏈表的參數(shù)之一,在鏈表創(chuàng)建時(shí)被指定。
      圖3為本發(fā)明基于結(jié)構(gòu)化語言的鏈表管理方法流程圖,如圖3所示,本發(fā)
      明基于結(jié)構(gòu)化語言的鏈表管理方法一般包括以下步驟
      步驟31:操作系統(tǒng)啟動(dòng)時(shí),確定與鏈表處理相關(guān)的接口。
      這里,與鏈表處理相關(guān)的接口一般包括內(nèi)存分配接口、內(nèi)存回收接口、
      信號(hào)量分配接口、信號(hào)量占有接口、信號(hào)量釋放接口、信號(hào)量回收接口等。在
      不同的操作系統(tǒng)中,這些接口也各不相同,必須首先根據(jù)操作系統(tǒng)確定這些接
      口,才能夠執(zhí)行本方法的后續(xù)步驟。
      步驟32:客戶程序運(yùn)行過程中需要進(jìn)行鏈表處理。
      這里,客戶程序運(yùn)行過程中的鏈表處理可以是鏈表創(chuàng)建、鏈表刪除、節(jié)點(diǎn) 創(chuàng)建、節(jié)點(diǎn)查詢、節(jié)點(diǎn)更新、節(jié)點(diǎn)刪除等操作。
      步驟33:客戶程序?qū)㈡湵硖幚碚埱蟀l(fā)送至鏈表管理模塊。
      這里,鏈表處理請求攜帶相應(yīng)的鏈表處理參數(shù)。例如,
      鏈表處理請求為鏈表創(chuàng)建請求時(shí),攜帶的鏈表創(chuàng)建參數(shù)一般包括鏈表類 型,節(jié)點(diǎn)數(shù)據(jù)、節(jié)點(diǎn)比較接口。其中,鏈表類型可以是單向鏈表、雙向鏈表或 環(huán)形鏈表;節(jié)點(diǎn)數(shù)據(jù)具體包括節(jié)點(diǎn)數(shù)據(jù)數(shù)值和唯一標(biāo)識(shí)該數(shù)據(jù)的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)。
      鏈表處理請求為鏈表刪除請求時(shí),攜帶的鏈表刪除參數(shù)一般包括需要?jiǎng)h除 的鏈表ID。
      鏈表處理請求為節(jié)點(diǎn)創(chuàng)建請求時(shí),攜帶的節(jié)點(diǎn)創(chuàng)建參數(shù)一般包括鏈表ID 和節(jié)點(diǎn)數(shù)據(jù)。鏈表處理請求為節(jié)點(diǎn)查詢請求時(shí),攜帶的節(jié)點(diǎn)查詢參數(shù)一般包括鏈表ID、
      含有節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)數(shù)據(jù)。
      鏈表處理請求為節(jié)點(diǎn)更新請求時(shí),攜帶的節(jié)點(diǎn)更新參數(shù)一般包括鏈表ID 和需要更新的節(jié)點(diǎn)數(shù)據(jù)。
      鏈表處理請求為節(jié)點(diǎn)刪除請求時(shí),攜帶的節(jié)點(diǎn)刪除參數(shù)一般包括鏈表ID、 節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)。
      步驟34:鏈表管理模塊根據(jù)所接收的鏈表處理請求,調(diào)用步驟31中確定 的相應(yīng)的接口對鏈表進(jìn)行處理。
      圖4為本發(fā)明進(jìn)行鏈表創(chuàng)建時(shí)的方法流程圖,如圖4所示,本發(fā)明進(jìn)行鏈 表創(chuàng)建時(shí), 一般包括以下步驟
      步驟41;客戶程序向鏈表管理模塊發(fā)送鏈表創(chuàng)建請求。
      這里,鏈表創(chuàng)建請求攜帶的鏈表創(chuàng)建參數(shù)一般包括鏈表類型,節(jié)點(diǎn)數(shù)據(jù)、 節(jié)點(diǎn)比較接口 。
      步驟42:鏈表管理模塊調(diào)用內(nèi)存分配接口在存儲(chǔ)模塊中進(jìn)行內(nèi)存分配,并
      根據(jù)鏈表創(chuàng)建請求中攜帶的鏈表創(chuàng)建參數(shù)創(chuàng)建鏈表。
      鏈表管理模塊具體調(diào)用環(huán)境模塊中確定的內(nèi)存分配接口進(jìn)行內(nèi)存分配。 步驟43:鏈表管理模塊調(diào)用信號(hào)量分配接口分配關(guān)于所創(chuàng)建鏈表的信號(hào)量
      并存儲(chǔ)。
      鏈表管理模塊具體調(diào)用環(huán)境模塊中確定的信號(hào)量分配接口進(jìn)行信號(hào)量分 配,這里,為鏈表創(chuàng)建信號(hào)量是為了保護(hù)對該鏈表的訪問,具體的,對鏈表中 的節(jié)點(diǎn)進(jìn)行操作時(shí),通過占有該鏈表的信號(hào)量來屏蔽其他應(yīng)用對該鏈表的訪問, 在對鏈表中的節(jié)點(diǎn)」燥作完成后,再釋放該鏈表的信號(hào)量,允許其他應(yīng)用對鏈表 進(jìn)行訪問。
      步驟44:鏈表管理模塊為所創(chuàng)建的鏈表分配鏈表ID并存儲(chǔ),之后將所述 鏈表ID返回客戶程序。
      這里,可以通過隨;機(jī)分配、遞增分配等多種方式分配4連表ID,只要保證一 個(gè)鏈表ID唯一標(biāo)識(shí)一個(gè)鏈表即可,鏈表ID作為鏈表的參數(shù)之一存儲(chǔ)于存儲(chǔ)模塊中。
      圖5為本發(fā)明進(jìn)行鏈表刪除時(shí)的方法流程圖,如圖5所示,本發(fā)明進(jìn)行鏈
      表刪除時(shí), 一般包括以下步驟
      步驟51:客戶程序向鏈表管理模塊發(fā)送鏈表刪除請求。
      所述鏈表刪除請求攜帶的鏈表刪除參數(shù)一般包括需要?jiǎng)h除的鏈表ID。
      步驟52:鏈表管理模塊根據(jù)鏈表刪除參數(shù)中的鏈表TD查找需要?jiǎng)h除的鏈表。
      這里,鏈表管理模塊具體在存儲(chǔ)模塊中進(jìn)行查找。
      步驟53:鏈表管理模塊調(diào)用內(nèi)存回收接口回收所述鏈表以及其中節(jié)點(diǎn)的內(nèi) 存空間,并調(diào)用信號(hào)量回收接口釋放所刪除鏈表對應(yīng)的信號(hào)量。
      鏈表管理模塊具體調(diào)用環(huán)境模塊中確定的內(nèi)存回收接口和信號(hào)量回收接口 對存儲(chǔ)模塊中的鏈表進(jìn)行刪除。
      步驟54:鏈表管理模塊向客戶程序返回鏈表刪除成功消息。
      圖6為本發(fā)明進(jìn)行節(jié)點(diǎn)創(chuàng)建時(shí)的方法流程圖,如圖6所示,本發(fā)明進(jìn)行節(jié) 點(diǎn)創(chuàng)建時(shí), 一般包括以下步驟
      步驟61:客戶程序向鏈表管理模塊發(fā)送節(jié)點(diǎn)創(chuàng)建請求。
      這里,節(jié)點(diǎn)創(chuàng)建請求瑪帶的節(jié)點(diǎn)創(chuàng)建參數(shù)一般包括鏈表ID和節(jié)點(diǎn)數(shù)據(jù), 其中,節(jié)點(diǎn)數(shù)據(jù)具體包括節(jié)點(diǎn)數(shù)據(jù)數(shù)值和唯一標(biāo)識(shí)該數(shù)據(jù)的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)。
      步驟62:鏈表管理模塊查找節(jié)點(diǎn)創(chuàng)建參數(shù)中鏈表ID對應(yīng)的鏈表。
      這里,鏈表管理^f莫塊具體在存儲(chǔ)模塊中進(jìn)行查找。
      步驟63:鏈表管理模塊調(diào)用信號(hào)量占有接口,占有所述鏈表的信號(hào)量。 鏈表管理模塊具體調(diào)用環(huán)境模塊中確定的信號(hào)量占有接口占有鏈表的信號(hào)量。
      步驟64:鏈表管理模塊判斷所述鏈表中,需創(chuàng)建的節(jié)點(diǎn)是否已存在,如果 是,執(zhí)行步驟65;否則,執(zhí)行步驟66。
      這里,具體通過調(diào)用節(jié)點(diǎn)創(chuàng)建參數(shù)中鏈表ID所對應(yīng)鏈表的節(jié)點(diǎn)比較接口 , 判斷所述鏈表中是否存在具有步驟61所述節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn),從而判斷需創(chuàng)建的節(jié)點(diǎn)是否已存在,鏈表的節(jié)點(diǎn)比較接口在創(chuàng)建該鏈表時(shí)已被指定,直接調(diào) 用存儲(chǔ)單元中的節(jié)點(diǎn)比較接口即可。
      步驟65:鏈表管理模塊向客戶程序返回節(jié)點(diǎn)已存在消息,轉(zhuǎn)到步驟68。 步驟66:鏈表管理模塊調(diào)用內(nèi)存分配接口在存儲(chǔ)模塊中分配內(nèi)存,并填充 節(jié)點(diǎn)創(chuàng)建參^:中的節(jié)點(diǎn)數(shù)據(jù)至所分配的內(nèi)存,即完成節(jié)點(diǎn)創(chuàng)建。
      步驟67:鏈表管理模塊向客戶程序返回所創(chuàng)建節(jié)點(diǎn)的節(jié)點(diǎn)指針,即內(nèi)存地址。
      步驟68:鏈表管理模塊調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量,流 程結(jié)束。
      圖7為本發(fā)明進(jìn)行節(jié)點(diǎn)查詢時(shí)的方法流程圖,如圖7所示,本發(fā)明進(jìn)行節(jié) 點(diǎn)查詢時(shí), 一般包括以下步驟
      步驟71:客戶程序向鏈表管理模塊發(fā)送節(jié)點(diǎn)查詢請求。
      這里,節(jié)點(diǎn)查詢請求攜帶的節(jié)點(diǎn)查詢參數(shù)一般包括鏈表ID、含有節(jié)點(diǎn)數(shù) 據(jù)標(biāo)識(shí)的節(jié)點(diǎn)數(shù)據(jù)。
      步驟72:鏈表管理模塊查找節(jié)點(diǎn)查詢參數(shù)中鏈表ID對應(yīng)的鏈表。
      這里,鏈表管理模塊具體在存儲(chǔ)模塊中進(jìn)行查找。
      步驟73:鏈表管理模塊調(diào)用信號(hào)量占有接口,占有所述鏈表的信號(hào)量。
      步驟74:鏈表管理模塊判斷所述鏈表中,需要查詢的節(jié)點(diǎn)是否存在,如果 是,執(zhí)行步驟75;否則,轉(zhuǎn)到步驟76。
      這里,判斷需要查詢的節(jié)點(diǎn)是否存在為調(diào)用所述鏈表的節(jié)點(diǎn)比較接口遍 歷所述鏈表,判斷是否存在節(jié)點(diǎn)查詢參數(shù)中攜帶的含有節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)數(shù) 據(jù)所對應(yīng)的節(jié)點(diǎn)。
      步驟75:鏈表管理模塊返回所述節(jié)點(diǎn)的節(jié)點(diǎn)指針至客戶程序,轉(zhuǎn)到步驟77。 步驟76:鏈表管理模塊向客戶程序返回查詢失敗消息。 步驟77:鏈表管理模塊調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量,流 程結(jié)束。
      圖8為本發(fā)明進(jìn)行節(jié)點(diǎn)更新時(shí)的方法流程圖,如圖8所示,本發(fā)明進(jìn)行節(jié)點(diǎn)更新時(shí), 一般包括以下步驟
      步驟81:客戶程序向鏈表管理模塊發(fā)送節(jié)點(diǎn)更新請求。
      這里,節(jié)點(diǎn)更新請求攜帶的節(jié)點(diǎn)更新參數(shù)一般包括鏈表ID和需要更新的
      節(jié)點(diǎn)數(shù)據(jù),其中,節(jié)點(diǎn)數(shù)據(jù)具體包括需更新的節(jié)點(diǎn)數(shù)據(jù)數(shù)值和需更新節(jié)點(diǎn)的節(jié)
      點(diǎn)數(shù)據(jù)標(biāo)識(shí)。
      步驟82:鏈表管理模塊查找節(jié)點(diǎn)更新參數(shù)中鏈表ID對應(yīng)的鏈表。 這里,鏈表管理模塊具體在存儲(chǔ)模塊中進(jìn)行查找。 步驟83:鏈表管理模塊調(diào)用信號(hào)量占有接口,占有所述鏈表的信號(hào)量。 步驟84:鏈表管理模塊在所述鏈表中查找需要更新的節(jié)點(diǎn)。 這里,具體通過調(diào)用鏈表的節(jié)點(diǎn)比較接口 ,查找節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)與步驟81 所述需更新節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)一致的節(jié)點(diǎn)。
      步驟85:將節(jié)點(diǎn)更新參數(shù)中需要更新的節(jié)點(diǎn)數(shù)據(jù)更新至所述需要更新的節(jié)點(diǎn)。
      這里,更新數(shù)據(jù)即以需更新的節(jié)點(diǎn)數(shù)據(jù)數(shù)值替換存儲(chǔ)模塊中需更新節(jié)點(diǎn)之 前的節(jié)點(diǎn)數(shù)據(jù)數(shù)值。
      步驟86:鏈表管理模塊向客戶程序返回更新成功消息,并調(diào)用信號(hào)量釋放 接口,釋放所述鏈表的信號(hào)量。
      圖9為本發(fā)明進(jìn)行節(jié)點(diǎn)刪除時(shí)的方法流程圖,如圖9所示,本發(fā)明進(jìn)行節(jié) 點(diǎn)刪除時(shí), 一般包括以下步驟
      步驟91:客戶程序向鏈表管理模塊發(fā)送節(jié)點(diǎn)刪除請求。
      這里,節(jié)點(diǎn)刪除請求攜帶的節(jié)點(diǎn)刪除參數(shù)一般包括鏈表ID、需要?jiǎng)h除節(jié) 點(diǎn)的含有節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)數(shù)據(jù)。
      步驟92:鏈表管理模塊查找節(jié)點(diǎn)刪除參數(shù)中鏈表ID對應(yīng)的鏈表。
      這里,鏈表管理模塊具體在存儲(chǔ)模塊中進(jìn)行查找。
      步驟93:鏈表管理模塊調(diào)用信號(hào)量占有接口,占有所述鏈表的信號(hào)量。
      步驟94:鏈表管理模塊在所述鏈表中查找需要?jiǎng)h除的節(jié)點(diǎn)。
      這里,具體通過調(diào)用鏈表的節(jié)點(diǎn)比較接口,查找步驟92所述鏈表中節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)與步驟91所述需要?jiǎng)h除節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)一致的節(jié)點(diǎn),即為需要?jiǎng)h除 的節(jié)點(diǎn)。
      步驟95:鏈表管理模塊刪除存儲(chǔ)模塊中的所述節(jié)點(diǎn),并向客戶程序返回刪 除成功消息。
      刪除存儲(chǔ)模塊中鏈表的節(jié)點(diǎn)具體為如果需要?jiǎng)h除的節(jié)點(diǎn)不是頭節(jié)點(diǎn)或者 尾節(jié)點(diǎn),則將該節(jié)點(diǎn)前面的節(jié)點(diǎn)和后面的節(jié)點(diǎn)的指針連接起來,之后調(diào)用內(nèi)存 回收接口回收需要?jiǎng)h除的節(jié)點(diǎn)對應(yīng)的內(nèi)存。例如,如果節(jié)點(diǎn)b的上一個(gè)節(jié)點(diǎn)指 針指向節(jié)點(diǎn)a (即節(jié)點(diǎn)a的下一個(gè)節(jié)點(diǎn)指針指向節(jié)點(diǎn)b),下一個(gè)節(jié)點(diǎn)指針指 向節(jié)點(diǎn)c (即節(jié)點(diǎn)c的上一個(gè)節(jié)點(diǎn)指針指向節(jié)點(diǎn)b),那么,刪除節(jié)點(diǎn)b時(shí), 修改節(jié)點(diǎn)a的下一個(gè)節(jié)點(diǎn)指針指向節(jié)點(diǎn)c、節(jié)點(diǎn)c的上一個(gè)節(jié)點(diǎn)指針指向節(jié)點(diǎn) a,之后調(diào)用內(nèi)存回收接口回收節(jié)點(diǎn)b對應(yīng)的內(nèi)存;如果需要?jiǎng)h除的節(jié)點(diǎn)是頭 節(jié)點(diǎn)或者尾節(jié)點(diǎn),則直接回收所述需要?jiǎng)h除的節(jié)點(diǎn)對應(yīng)的內(nèi)存,不需要做節(jié)點(diǎn) 連接。
      步驟96:鏈表管理模塊調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量. 以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
      權(quán)利要求
      1、一種基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng),其特征在于,該系統(tǒng)包括環(huán)境模塊、鏈表管理模塊、存儲(chǔ)模塊,其中,環(huán)境模塊用于在操作系統(tǒng)啟動(dòng)時(shí),確定與鏈表處理相關(guān)的接口;鏈表管理模塊,用于根據(jù)來自客戶程序的鏈表處理請求,調(diào)用環(huán)境模塊中的接口和/或存儲(chǔ)模塊中的節(jié)點(diǎn)比較接口,對存儲(chǔ)模塊中存儲(chǔ)的鏈表進(jìn)行處理;存儲(chǔ)模塊,用于存儲(chǔ)鏈表,以及鏈表的節(jié)點(diǎn)比較接口。
      2、 一種基于結(jié)構(gòu)化語言的鏈表管理方法,其特征在于,該方法包括 操作系統(tǒng)啟動(dòng)時(shí),確定與鏈表處理相關(guān)的接口;客戶程序運(yùn)行過程中需要進(jìn)行鏈表處理時(shí),客戶程序?qū)㈡湵硖幚碚埱蟀l(fā)送 至鏈表管理模塊;鏈表管理模塊根據(jù)所接收的鏈表處理請求,調(diào)用所述與鏈表處理相關(guān)的接 口和/或節(jié)點(diǎn)比較接口對鏈表進(jìn)行處理。
      3、 根據(jù)權(quán)利要求2所述的鏈表管理方法,其特征在于,所述與鏈表處理相 關(guān)的接口包括內(nèi)存分配接口 、信號(hào)量分配接口;所述鏈表處理請求為鏈表創(chuàng)建請求,其攜帶的鏈表創(chuàng)建參數(shù)包括鏈表類 型,節(jié)點(diǎn)lt據(jù)、節(jié)點(diǎn)比較4妻口;所述鏈表管理模塊對鏈表進(jìn)行處理為調(diào)用內(nèi)存分配接口進(jìn)行內(nèi)存分配,并根據(jù)鏈表創(chuàng)建參數(shù)中攜帶的鏈表創(chuàng)建 參數(shù)創(chuàng)建鏈表;調(diào)用信號(hào)量分配接口分配關(guān)于所創(chuàng)建鏈表的信號(hào)量并存儲(chǔ); 為所創(chuàng)建的鏈表分配鏈表ID并存儲(chǔ),并將所述鏈表ID返回客戶程序。
      4、 根據(jù)權(quán)利要求2所述的鏈表管理方法,其特征在于,所述與鏈表處理相 關(guān)的接口包括內(nèi)存回收接口、信號(hào)量回收接口;所述鏈表處理請求為鏈表刪除請求,其攜帶的鏈表刪除參數(shù)包括需要?jiǎng)h 除的鏈表ID;所述鏈表管理模塊對鏈表進(jìn)行處理為根據(jù)鏈表刪除參數(shù)中的鏈表ID查找需要?jiǎng)h除的鏈表;調(diào)用內(nèi)存回收接口釋放所述鏈表及鏈表中節(jié)點(diǎn)的內(nèi)存空間,并調(diào)用信號(hào)量回收接口回收所刪除鏈表對應(yīng)的信號(hào)量; 向客戶程序返回鏈表刪除成功消息。
      5、 根據(jù)權(quán)利要求2所述的鏈表管理方法,其特征在于,所述與鏈表處理相 關(guān)的接口包括內(nèi)存分配接口、信號(hào)量占有接口、信號(hào)量釋放接口;所述鏈表處理請求為節(jié)點(diǎn)創(chuàng)建請求,其攜帶的節(jié)點(diǎn)創(chuàng)建參數(shù)包括鏈表ID 和節(jié)點(diǎn)數(shù)據(jù),其中,所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)數(shù)據(jù)數(shù)值和唯一標(biāo)識(shí)該數(shù)據(jù)的節(jié)點(diǎn) 數(shù)據(jù)標(biāo)識(shí);所述鏈表管理模塊對鏈表進(jìn)行處理為查找節(jié)點(diǎn)創(chuàng)建參數(shù)中鏈表ID對應(yīng)的鏈表,調(diào)用信號(hào)量占有接口,占有所述 鏈表的信號(hào)量;判斷所述鏈表中,需創(chuàng)建的節(jié)點(diǎn)是否已存在,需創(chuàng)建的節(jié)點(diǎn)已存在,向客 戶程序返回節(jié)點(diǎn)已存在消息,調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量; 需創(chuàng)建的節(jié)點(diǎn)不存在,調(diào)用內(nèi)存分配接口創(chuàng)建節(jié)點(diǎn),并向客戶程序返回所創(chuàng)建 節(jié)點(diǎn)的節(jié)點(diǎn)指針,調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量。
      6、 根據(jù)權(quán)利要求5所迷的鏈表管理方法,其特征在于,所述判斷需創(chuàng)建的 節(jié)點(diǎn)是否已存在為調(diào)用節(jié)點(diǎn)創(chuàng)建參數(shù)中鏈表ID所對應(yīng)鏈表的節(jié)點(diǎn)比較接口 , 判斷所述鏈表中是否存在具有所述節(jié)點(diǎn)創(chuàng)建參數(shù)中的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)。
      7、 沖艮據(jù)權(quán)利要求2所述的鏈表管理方法,其特征在于,所述與鏈表處理相 關(guān)的接口包括信號(hào)量占有接口、信號(hào)量釋放接口;所述鏈表處理請求為節(jié)點(diǎn)查詢請求,其攜帶的節(jié)點(diǎn)查詢參數(shù)包括鏈表ID、 含有節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)數(shù)據(jù);所述鏈表管理模塊對鏈表進(jìn)行處理為查找節(jié)點(diǎn)查詢參數(shù)中鏈表ID對應(yīng)的鏈表,調(diào)用信號(hào)量占有接口,占有所述 鏈表的信號(hào)量;調(diào)用所述鏈表的節(jié)點(diǎn)比較接口查詢節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)與節(jié)點(diǎn)查詢與節(jié)點(diǎn)查詢參 數(shù)中攜帶的含有節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí)的節(jié)點(diǎn)數(shù)據(jù)所對應(yīng)的節(jié)點(diǎn),并返回所述節(jié)點(diǎn)的節(jié) 點(diǎn)指針至客戶程序;調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量。
      8、 根據(jù)權(quán)利要求2所述的鏈表管理方法,其特征在于,所述與鏈表處理相 關(guān)的接口包括信號(hào)量占有接口、信號(hào)量釋放接口;所述鏈表處理請求為節(jié)點(diǎn)更新請求,其攜帶的節(jié)點(diǎn)更新參數(shù)包括鏈表ID 和需要更新的節(jié)點(diǎn)^:據(jù),其中,所述節(jié)點(diǎn)數(shù)據(jù)具體包括需更新的節(jié)點(diǎn)數(shù)據(jù)數(shù)值 和需更新節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí);所述鏈表管理模塊對鏈表進(jìn)行處理為查找節(jié)點(diǎn)更新參數(shù)中鏈表ID對應(yīng)的鏈表,調(diào)用信號(hào)量占有接口,占有所述 鏈表的信號(hào)量;在所述鏈表中查找需要更新的節(jié)點(diǎn),并將節(jié)點(diǎn)更新參數(shù)中需要更新的節(jié)點(diǎn) 數(shù)據(jù)更新至所述需要更新的節(jié)點(diǎn);向客戶程序返回更新成功消息,并調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量。
      9、 根據(jù)權(quán)利要求2所述的鏈表管理方法,其特征在于,所述與鏈表處理相 關(guān)的接口包括內(nèi)存回收接口、信號(hào)量占有接口、信號(hào)量釋放接口;所述鏈表處理請求為節(jié)點(diǎn)刪除請求,其攜帶的節(jié)點(diǎn)刪除參數(shù)包括鏈表ID、 需要?jiǎng)h除節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)標(biāo)識(shí);所述鏈表管理模塊對鏈表進(jìn)行處理為查找節(jié)點(diǎn)刪除參數(shù)中鏈表ID對應(yīng)的鏈表,調(diào)用信號(hào)量占有接口,占有所述 鏈表的信號(hào)量;在所述鏈表中查找需要?jiǎng)h除的節(jié)點(diǎn);調(diào)用內(nèi)存回收接口刪除所述需要?jiǎng)h除的節(jié)點(diǎn),并向客戶程序返回刪除成功 消息,調(diào)用信號(hào)量釋放接口,釋放所述鏈表的信號(hào)量。
      10、 根據(jù)權(quán)利要求9所述的鏈表管理方法,其特征在于,所述刪除需要?jiǎng)h除的節(jié)點(diǎn)為需要?jiǎng)h除的節(jié)點(diǎn)不是頭節(jié)點(diǎn)或者尾節(jié)點(diǎn),將所述需要?jiǎng)h除的節(jié)點(diǎn)前面的節(jié)點(diǎn)和后面的節(jié)點(diǎn)的指針連接起來,再調(diào)用內(nèi)存回收接口回收需要?jiǎng)h除的節(jié)點(diǎn)對應(yīng)的內(nèi)存;需要?jiǎng)h除的節(jié)點(diǎn)是頭節(jié)點(diǎn)或者尾節(jié)點(diǎn),直接回收所述需要 刪除的節(jié)點(diǎn)對應(yīng)的內(nèi)存。
      全文摘要
      本發(fā)明公開一種基于結(jié)構(gòu)化語言的鏈表管理系統(tǒng),包括環(huán)境模塊、鏈表管理模塊、存儲(chǔ)模塊,其中,環(huán)境模塊在操作系統(tǒng)啟動(dòng)時(shí),確定與鏈表處理相關(guān)的接口;鏈表管理模塊根據(jù)來自客戶程序的鏈表處理請求,調(diào)用環(huán)境模塊中的接口和/或存儲(chǔ)模塊中的比較接口,對存儲(chǔ)模塊中存儲(chǔ)的鏈表進(jìn)行處理。本發(fā)明還相應(yīng)地公開一種基于結(jié)構(gòu)化語言的鏈表管理方法,采用本發(fā)明,在不同項(xiàng)目中,通過調(diào)用相應(yīng)的接口,便可按照設(shè)定的處理流程實(shí)現(xiàn)鏈表管理,不需要分別編寫代碼實(shí)現(xiàn)鏈表管理,從而能夠明顯簡化代碼、提高代碼可維護(hù)性和擴(kuò)展性,從而提高軟件開發(fā)效率。
      文檔編號(hào)G06F12/02GK101582031SQ20091014912
      公開日2009年11月18日 申請日期2009年6月16日 優(yōu)先權(quán)日2009年6月16日
      發(fā)明者曹登元 申請人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1