国产精品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>

      一種樹型通訊錄的構(gòu)造方法

      文檔序號:6519497閱讀:337來源:國知局
      專利名稱:一種樹型通訊錄的構(gòu)造方法
      技術(shù)領(lǐng)域
      本發(fā)明提出了一種樹型通訊錄的構(gòu)造方法,屬于信息技術(shù)領(lǐng)域,實現(xiàn)了一種在通訊時(例如電子郵件、傳真、電話)管理個人或單位通訊信息的方法。
      背景技術(shù)
      通訊錄在現(xiàn)在信息技術(shù)高速發(fā)展的帶動下已經(jīng)成為人們在電子郵件系統(tǒng)以及各種通訊設(shè)備上管理個人或單位的通訊信息的主要工具,該技術(shù)將個人或單位的通訊信息存貯在相應(yīng)的通訊系統(tǒng)或通訊設(shè)備上以方便用戶使用,比較典型的就是在計算機(jī)上和移動設(shè)備上的個人通訊信息的管理。然而當(dāng)前的通訊錄技術(shù)均采用分類——聯(lián)系人的單一結(jié)構(gòu),即分類下只能有聯(lián)系人,而不能進(jìn)一步建立分類,這種結(jié)構(gòu)在通訊錄記錄太多的情況下存在管理困難,使用不方便等缺點。

      發(fā)明內(nèi)容
      本發(fā)明提出了一種樹型通訊錄的構(gòu)造方法,本發(fā)明的目的是提供一種高效存儲和管理個人或單位通訊錄信息的方法。
      本發(fā)明的樹型結(jié)構(gòu)通訊錄包含根節(jié)點,分類節(jié)點和聯(lián)系人節(jié)點。根節(jié)點是特殊的分類節(jié)點,所有的分類節(jié)點和聯(lián)系人節(jié)點都屬于根節(jié)點,從而組成一棵樹。分類節(jié)點存儲分類信息,在分類節(jié)點下還可以創(chuàng)建子分類節(jié)點和聯(lián)系人節(jié)點,聯(lián)系人節(jié)點是樹的葉節(jié)點,存儲聯(lián)系人的有關(guān)信息。從邏輯上看,每一個分類節(jié)點由其子分類及其聯(lián)系人節(jié)點構(gòu)成一棵子樹(上一級通訊錄的子通訊錄)。所有的子樹以及葉節(jié)點構(gòu)成整個通訊錄樹。
      該樹型結(jié)構(gòu)的通訊錄在物理存儲上由兩個文件構(gòu)成,一個是主文件,一個是聯(lián)系人詳細(xì)信息數(shù)據(jù)文件。主文件記錄了通訊錄中所有分類的詳細(xì)信息及聯(lián)系人的摘要信息。由于同一聯(lián)系人可能屬于不同的分類,為避免數(shù)據(jù)冗余,主文件只記錄聯(lián)系人的摘要信息,有關(guān)聯(lián)系人詳細(xì)信息記錄在“聯(lián)系人詳細(xì)信息數(shù)據(jù)文件”中,這兩個文件都采取順序存儲的方式存于外存。
      使用通訊錄時,首先需要打開通訊錄,將存儲有通訊錄的兩個文件(主文件和聯(lián)系人詳細(xì)信息數(shù)據(jù)文件)讀入內(nèi)存,在內(nèi)存中形成一個通訊錄樹。對通訊錄進(jìn)行增加、刪除分類或聯(lián)系人的操作,實際上轉(zhuǎn)變?yōu)樵谕ㄓ嶄洏渲羞M(jìn)行相關(guān)節(jié)點的添加和刪除工作,完成維護(hù)通訊錄樹的工作。關(guān)閉通訊錄時,若本次通訊錄樹發(fā)生改變,則將修改后的通訊錄樹中的所有節(jié)點按樹的前序遍歷順序分別寫入外存中的主文件和聯(lián)系人詳細(xì)信息數(shù)據(jù)文件中,以利于通訊錄的永久保持。


      圖1為通訊錄的邏輯結(jié)構(gòu)圖;圖2為通訊錄樹中節(jié)點的數(shù)據(jù)結(jié)構(gòu)圖;圖3為聯(lián)系人詳細(xì)信息鏈表節(jié)點的數(shù)據(jù)結(jié)構(gòu)圖;圖4為通訊錄在外存中的存儲結(jié)構(gòu)圖;圖5為打開通訊錄的步驟圖;圖6為創(chuàng)建通訊錄樹的步驟圖;圖7為新建一個聯(lián)系人的步驟圖;圖8為新建一個分類的步驟圖;圖9為刪除一個指定聯(lián)系人的步驟圖;圖10為刪除一個分類的步驟圖;圖11為關(guān)閉通訊錄的步驟圖;圖12為保存指定通訊錄樹T的步驟。
      具體實施例方式
      以下結(jié)合附圖對本發(fā)明的原理作進(jìn)一步的說明。
      圖1為通訊錄的邏輯結(jié)構(gòu)。
      本發(fā)明的通訊錄由通訊錄樹和聯(lián)系人詳細(xì)信息鏈表構(gòu)成。通訊錄樹由根節(jié)點、分類節(jié)點和聯(lián)系人節(jié)點組成。所有的分類節(jié)點和聯(lián)系人節(jié)點都屬于根節(jié)點。分類節(jié)點存儲分類信息,分類節(jié)點本身是上一級通訊錄樹的子樹,同樣由其子分類節(jié)點和聯(lián)系人節(jié)點組成。整個通訊錄樹采用計算機(jī)數(shù)據(jù)結(jié)構(gòu)表示方法中的多重鏈表實現(xiàn),其節(jié)點的數(shù)據(jù)結(jié)構(gòu)如圖2所示。聯(lián)系人詳細(xì)信息鏈表由通訊錄中所有的聯(lián)系人信息構(gòu)成,采用單向鏈表,其節(jié)點的數(shù)據(jù)結(jié)構(gòu)如圖3所示。通訊錄樹中的每個聯(lián)系人節(jié)點都對應(yīng)聯(lián)系人詳細(xì)信息鏈表中的一個節(jié)點。
      圖2為通訊錄樹中節(jié)點的數(shù)據(jù)結(jié)構(gòu)。
      樹型通訊錄在內(nèi)存中采用多重鏈表存儲結(jié)構(gòu),每個樹型節(jié)點對應(yīng)內(nèi)存中一個鏈表節(jié)點。鏈表節(jié)點結(jié)構(gòu)如下1)節(jié)點類別標(biāo)明該節(jié)點為分類節(jié)點還是聯(lián)系人節(jié)點。
      2)節(jié)點名稱標(biāo)明該節(jié)點對應(yīng)的分類名稱或聯(lián)系人的姓名。
      3)節(jié)點唯一標(biāo)示碼若本節(jié)點為分類節(jié)點,則為該節(jié)點在系統(tǒng)中的唯一標(biāo)示碼,這個唯一標(biāo)示碼在建立分類節(jié)點時創(chuàng)建;若本節(jié)點為聯(lián)系人節(jié)點,標(biāo)明該節(jié)點對應(yīng)聯(lián)系人的唯一標(biāo)示碼,例如身份證號、或郵件地址等。
      4)子通訊錄樹指針若本節(jié)點為聯(lián)系人節(jié)點,則為空;否則即為分類節(jié)點,其指示另一棵子通訊錄樹的根。
      5)下一個兄弟節(jié)點指針指向當(dāng)前節(jié)點所屬分類的下一個成員(子分類或聯(lián)系人)。
      6)節(jié)點描述信息若該節(jié)點為分類,則為該分類的有關(guān)信息;否則為該節(jié)點指示的聯(lián)系人在聯(lián)系人詳細(xì)信息鏈表中的位置。
      圖3為聯(lián)系人詳細(xì)信息鏈表節(jié)點的數(shù)據(jù)結(jié)構(gòu)。
      聯(lián)系人詳細(xì)信息在內(nèi)存中采用單向鏈表存儲結(jié)構(gòu),每個聯(lián)系人的詳細(xì)信息都對應(yīng)內(nèi)存中一個鏈表節(jié)點。鏈表節(jié)點結(jié)構(gòu)如下1)被包含數(shù)標(biāo)明該節(jié)點被多少聯(lián)系人節(jié)點所指向,即該聯(lián)系人被同時包含在多少個分類中。
      2)詳細(xì)信息標(biāo)明該聯(lián)系人的詳細(xì)信息,例如身份證號碼、電子郵件地址,家庭電話,手機(jī),單位,職務(wù)、通訊地址,郵政編碼等。其中選擇一個數(shù)據(jù)項作為聯(lián)系人的唯一標(biāo)示碼,通訊錄樹中聯(lián)系人節(jié)點根據(jù)此唯一標(biāo)示碼查找與其對應(yīng)的聯(lián)系人的詳細(xì)信息。
      3)下一個聯(lián)系人指向下一個聯(lián)系人詳細(xì)信息節(jié)點。
      圖4為通訊錄在外存中的存儲結(jié)構(gòu)。
      本發(fā)明通訊錄在外存中的存儲方式采用順序文件,由主文件和聯(lián)系人詳細(xì)信息數(shù)據(jù)文件組成。
      主文件采取順序存儲,為一種不定長記錄文件,由三種記錄組成,每種記錄的結(jié)構(gòu)如下1)記錄類型記錄記錄類型標(biāo)志指示當(dāng)前分類結(jié)束標(biāo)志,或標(biāo)明該記錄的下一個記錄為一個聯(lián)系人記錄,或標(biāo)明該記錄的下一個記錄為一個分類記錄。
      2)聯(lián)系人記錄,包括●唯一標(biāo)示碼例如身份證號、或郵件地址等;●姓名該聯(lián)系人的姓名;●被包含數(shù)指示該聯(lián)系人被包含在多少個分類中。
      3)分類記錄●分類名稱該分類的名稱;●分類說明該分類的有關(guān)說明。
      聯(lián)系人詳細(xì)信息數(shù)據(jù)文件包含主文件中所有聯(lián)系人記錄的詳細(xì)信息(如身份證號碼、電子郵件地址,家庭電話,手機(jī),單位,職務(wù)、通訊地址,郵政編碼等),采取順序存儲。
      圖5為打開通訊錄的步驟。
      打開通訊錄的步驟就是將外存中的主文件和聯(lián)系人詳細(xì)信息數(shù)據(jù)文件讀入內(nèi)存建立通訊錄樹的步驟,其中,主文件在內(nèi)存中以多重鏈表的結(jié)構(gòu)存儲,聯(lián)系人詳細(xì)信息數(shù)據(jù)文件以單向鏈表的結(jié)構(gòu)存儲。打開存儲在外存中的通訊錄的步驟如下1)打開主文件以及聯(lián)系人詳細(xì)信息數(shù)據(jù)文件。
      2)從聯(lián)系人詳細(xì)信息數(shù)據(jù)文件中逐項讀入每一個聯(lián)系人記錄,在內(nèi)存中創(chuàng)建與之對應(yīng)聯(lián)系人詳細(xì)信息鏈表L。
      3)調(diào)用創(chuàng)建通訊錄樹的步驟,得到該通訊錄樹的根節(jié)點指針H。
      4)關(guān)閉主文件以及聯(lián)系人詳細(xì)信息數(shù)據(jù)文件。
      圖6為創(chuàng)建通訊錄樹的步驟。
      創(chuàng)建通訊錄樹的步驟如下1)置當(dāng)前通訊錄的頭指針H及尾指針T為空。
      2)如果主文件沒有結(jié)束,跳轉(zhuǎn)到3),否則返回當(dāng)前通訊錄的頭指針H。
      3)從主文件中讀取記錄類型記錄R。
      4)如果R不是當(dāng)前分類結(jié)束標(biāo)志,跳轉(zhuǎn)到5),否則返回當(dāng)前通訊錄的頭指針H。
      5)生成一個新節(jié)點P,將P中的所有數(shù)據(jù)項置為空。
      6)如果R指示下一個記錄為聯(lián)系人記錄,跳轉(zhuǎn)到7),否則跳轉(zhuǎn)到12)。
      7)P.節(jié)點類別=聯(lián)系人。
      8)從主文件中讀取一個聯(lián)系人記錄R1。
      9)從聯(lián)系人詳細(xì)信息鏈表中獲得該聯(lián)系人的位置q。
      10)將R1中相關(guān)信息填入P中相應(yīng)字段。
      11)P.節(jié)點描述信息=q,跳轉(zhuǎn)到17)。
      12)P.節(jié)點類別=分類。
      13)從主文件中讀取一個分類記錄R1。
      14)將R1中的數(shù)據(jù)填入P中相應(yīng)字段。
      15)遞歸調(diào)用本步驟處理該分類下的所有成員從而得到一個新的子通訊錄樹的頭指針H′。
      16)P.子通訊錄樹指針=H′。
      17)如果T為空,則H=P;T=P;否則T.下一個兄弟節(jié)點指針=P;T=P。
      18)跳轉(zhuǎn)到2)。
      圖7為新建一個聯(lián)系人的步驟。
      在當(dāng)前分類中新建一個聯(lián)系人的步驟如下
      1)在內(nèi)存中新建一個節(jié)點P,置P的所有字段為空。
      2)P.節(jié)點類別=聯(lián)系人,P.節(jié)點唯一標(biāo)示碼=該聯(lián)系人的唯一標(biāo)示碼;P.節(jié)點名稱=新建聯(lián)系人姓名。
      3)從聯(lián)系人詳細(xì)信息鏈表L中獲得該聯(lián)系人的地址q。
      4)判斷是否有無該新建聯(lián)系人如果q為空,則無該聯(lián)系人,跳轉(zhuǎn)到5);否則已存在該聯(lián)系人(q),跳轉(zhuǎn)到7)。
      5)生成一個新的聯(lián)系人詳細(xì)信息節(jié)點q,將該新建聯(lián)系人的詳細(xì)信息填入q中。
      6)q.被包含數(shù)=1;將q插入到聯(lián)系人詳細(xì)信息鏈表L的尾部,跳轉(zhuǎn)到8)。
      7)q.被包含數(shù)=q.被包含數(shù)+1。
      8)P.節(jié)點描述信息=q。
      9)查找當(dāng)前分類的最后一個兒子節(jié)點T。
      10)如果T為空,跳轉(zhuǎn)到11);否則跳轉(zhuǎn)到12)。
      11)當(dāng)前分類節(jié)點.子通訊錄樹指針=P,跳轉(zhuǎn)到13)。
      12)T.下一個兄弟節(jié)點指針=P。
      13)返回。
      圖8為新建一個分類的步驟。
      在當(dāng)前分類中新建一個分類的步驟如下1)新建一個節(jié)點P,置P的所有字段為空。
      2)P.節(jié)點類別=分類,P.節(jié)點名稱=新建分類姓名,設(shè)置P的節(jié)點唯一標(biāo)示碼。
      3)查找當(dāng)前分類的最后一個兒子節(jié)點T。
      4)如果T為空,跳轉(zhuǎn)到5);否則跳轉(zhuǎn)到6)。
      5)當(dāng)前分類節(jié)點.子通訊錄樹指針=P,跳轉(zhuǎn)到7)。
      6)T.下一個兄弟節(jié)點指針=P。
      7)返回。
      圖9為刪除一個指定聯(lián)系人的步驟。
      在當(dāng)前分類S中刪除一個指定聯(lián)系人P的步驟1)如果S.子通訊錄樹指針=P,跳轉(zhuǎn)到2);否則到3)。
      2)S.子通訊錄樹指針=P.下一個兄弟節(jié)點指針,跳轉(zhuǎn)到5)。
      3)獲得P的前一個兄弟節(jié)點P′。
      4)P′.下一個兄弟節(jié)點指針=P.下一個兄弟節(jié)點指針。
      5)從聯(lián)系人詳細(xì)信息鏈表L中獲得該聯(lián)系人詳細(xì)信息節(jié)點q后,然后再刪除該聯(lián)系人節(jié)點P。
      6)如果q.被包含數(shù)=1,跳轉(zhuǎn)到7),否則跳轉(zhuǎn)到8)7)從聯(lián)系人詳細(xì)信息鏈表L中刪除q,返回。
      8)q.被包含數(shù)=q.被包含數(shù)-1。
      9)返回。
      圖10為刪除一個分類的步驟。
      在當(dāng)前分類S中刪除一個指定分類P的步驟1)如果S.子通訊錄樹指針=P,跳轉(zhuǎn)到2);否則跳轉(zhuǎn)到3)。
      2)S.子通訊錄樹指針=P.下一個兄弟節(jié)點指針,跳轉(zhuǎn)到5)。
      3)獲得P的前一個兄弟節(jié)點P′。
      4)P′.下一個兄弟節(jié)點指針=P.下一個兄弟節(jié)點指針。
      5)刪除分類P。
      6)返回。
      圖11為關(guān)閉通訊錄的步驟。
      若本次通訊錄樹發(fā)生改變,則將修改后的通訊錄樹中的所有節(jié)點按樹的前序遍歷順序?qū)懭胪獯嬷械闹魑募?,同時將當(dāng)前聯(lián)系人詳細(xì)信息鏈表中的所有節(jié)點信息存入聯(lián)系人詳細(xì)信息數(shù)據(jù)文件中,以利于通訊錄的永久保持。以下是關(guān)閉通訊錄的詳細(xì)步驟1)若本次操作通訊錄樹沒有任何改變,則直接返回,否則跳轉(zhuǎn)到2)。
      2)分別打開主文件以及聯(lián)系人詳細(xì)數(shù)據(jù)文件,并將這兩個文件清空。
      3)調(diào)用保存通訊錄樹T的步驟,將修改后的通訊錄樹T寫入外存中的主文件中。
      4)將當(dāng)前聯(lián)系人詳細(xì)信息鏈表L中的所有節(jié)點的信息按順序分別寫入聯(lián)系人詳細(xì)信息數(shù)據(jù)文件中。
      5)關(guān)閉主文件以及聯(lián)系人詳細(xì)信息數(shù)據(jù)文件。
      圖12為保存指定通訊錄樹T的步驟。
      整個保存通訊錄樹的步驟,為一個將通訊錄樹中的所有節(jié)點按樹的前序遍歷順序?qū)懭胪獯嬷械闹魑募牟襟E。該步驟是一個遞歸過程,即若正在保存的節(jié)點是一個分類,則將該分類信息保存好后,將其指示的所有下屬成員看成是一棵通訊錄子樹,對該子樹的處理方式為重新調(diào)用本步驟保存該子樹。以下是保存通訊錄樹的詳細(xì)步驟1)獲得當(dāng)前通訊錄樹的頭指針H。
      2)新建一個記錄類型記錄R。
      3)若H為空則跳轉(zhuǎn)到18),否則跳轉(zhuǎn)到4)。
      4)若H-&gt;節(jié)點類別為分類節(jié)點,則跳轉(zhuǎn)到5),否則跳轉(zhuǎn)到12)。
      5)設(shè)置R的記錄類型標(biāo)志字段值為“分類”,以標(biāo)明下一個記錄為分類記錄。
      6)將R寫入主文件中。
      7)新建一個分類記錄S。
      8)將H指向的節(jié)點的有關(guān)信息填入S的相應(yīng)字段。
      9)將S寫入主文件中。
      10)H子通訊錄樹=H-&gt;子通訊錄樹指針。
      11)遞歸調(diào)用本步驟把子通訊錄樹H子通訊錄樹存入主文件中,跳轉(zhuǎn)到17)。
      12)設(shè)置R的記錄類型標(biāo)志字段值為“聯(lián)系人”,以標(biāo)明下一個記錄為聯(lián)系人記錄。
      13)將R寫入主文件中。
      14)新建一個聯(lián)系人記錄P。
      15)將H指向的節(jié)點的有關(guān)信息填入P的相應(yīng)字段。
      16)將P寫入主文件中。
      17)H=H-&gt;下一個兄弟節(jié)點指針,跳轉(zhuǎn)到2)。
      18)設(shè)置R的記錄類型標(biāo)志字段值為“分類結(jié)束”標(biāo)志,以標(biāo)明當(dāng)前分類結(jié)束。
      19)將R寫入主文件中。
      20)返回。
      權(quán)利要求
      1.一種樹型通訊錄的構(gòu)造方法,所述方法通過順序文件、樹型結(jié)構(gòu)、多重鏈表、單向鏈表等來實現(xiàn),其特征包括通訊錄的邏輯結(jié)構(gòu),該結(jié)構(gòu)包含通訊錄樹和聯(lián)系人詳細(xì)信息鏈表,其中通訊錄樹包含三部分內(nèi)容根節(jié)點、分類節(jié)點和聯(lián)系人節(jié)點;通訊錄樹中的每個聯(lián)系人節(jié)點都對應(yīng)聯(lián)系人信息鏈表中的一個節(jié)點;其構(gòu)造方法包括以下步驟(1)打開通訊錄的步驟,包括創(chuàng)建聯(lián)系人詳細(xì)信息鏈表的步驟;創(chuàng)建通訊錄樹的步驟;(2)維護(hù)通訊錄樹的步驟,包括新建一個聯(lián)系人的步驟;新建一個分類的步驟;刪除一個指定聯(lián)系人的步驟;刪除一個分類的步驟;(3)關(guān)閉通訊錄的步驟,包括保存通訊錄樹,寫入主文件的步驟;保存聯(lián)系人詳細(xì)信息鏈表,寫入聯(lián)系人詳細(xì)信息數(shù)據(jù)文件的步驟。
      全文摘要
      本發(fā)明提出了一種樹型通訊錄的構(gòu)造方法。樹型結(jié)構(gòu)的通訊錄可以分級建立分類,每個分類可以建立子分類,同時也可以建立聯(lián)系人,彌補(bǔ)了現(xiàn)在通訊錄技術(shù)中分類下不能創(chuàng)建分類的缺陷,可實現(xiàn)對大量個人或單位的通訊信息的存儲和管理的方便性。本發(fā)明可廣泛用于電子郵件、傳真、電話等的通訊錄的構(gòu)造,具有重要的實用價值和廣闊的應(yīng)用前景。
      文檔編號G06F17/30GK1694093SQ200510020290
      公開日2005年11月9日 申請日期2005年2月1日 優(yōu)先權(quán)日2005年2月1日
      發(fā)明者李濤 申請人:四川大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1