版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 10.1 文件的基本概念文件的基本概念 10.2 順序文件順序文件 10.4 Hash文件文件 10.3 索引文件索引文件 10.5 多關(guān)鍵字文件多關(guān)鍵字文件 10.1 文件的基本概念文件的基本概念 10.1.1 什么是文件什么是文件 10.1.2 文件的邏輯結(jié)構(gòu)及操作文件的邏輯結(jié)構(gòu)及操作 10.1.3 文件的存儲結(jié)構(gòu)文件的存儲結(jié)構(gòu) 10.1.1什么是文件什么是文件 數(shù)據(jù)庫文件的每個記錄由若干數(shù)據(jù)項構(gòu)成。記數(shù)據(jù)庫文件的每個記錄由若干數(shù)據(jù)項構(gòu)成。記 錄是文件存取的基本單位,數(shù)據(jù)項是文件使用的最錄是文件存取的基本單位,數(shù)據(jù)項是文件使用的最 小單位。數(shù)據(jù)項又稱關(guān)鍵字項,關(guān)鍵字項的值稱為小單位。數(shù)據(jù)
2、項又稱關(guān)鍵字項,關(guān)鍵字項的值稱為 關(guān)鍵字關(guān)鍵字(Key)。能惟一標(biāo)識一個記錄的關(guān)鍵字稱為主。能惟一標(biāo)識一個記錄的關(guān)鍵字稱為主 關(guān)鍵字,而其他的關(guān)鍵字稱為次關(guān)鍵字。關(guān)鍵字,而其他的關(guān)鍵字稱為次關(guān)鍵字。 文件(文件(File)是性質(zhì)相同、邏輯上相關(guān)的)是性質(zhì)相同、邏輯上相關(guān)的 記錄的集合。記錄的集合。 按文件記錄的類型不同可以將文件分為兩類:按文件記錄的類型不同可以將文件分為兩類: 操作系統(tǒng)文件和數(shù)據(jù)庫文件。操作系統(tǒng)文件是一維操作系統(tǒng)文件和數(shù)據(jù)庫文件。操作系統(tǒng)文件是一維 的字符序列,無結(jié)構(gòu),無解釋。數(shù)據(jù)庫文件是帶有的字符序列,無結(jié)構(gòu),無解釋。數(shù)據(jù)庫文件是帶有 結(jié)構(gòu)的記錄集合。結(jié)構(gòu)的記錄集合。 圖1
3、0-1所示是一個簡單的學(xué)生文件,每個 學(xué)生的情況是一個記錄。每個記錄由學(xué)號、姓 名、性別和年齡4個數(shù)據(jù)項組成。其中“學(xué)號” 是主關(guān)鍵字,“姓名”、“性別”等是次關(guān)鍵 字。 學(xué)號姓名性別年齡 200801001張小平男18 200801002李立新女20 200801003王鵬飛男19 200801004王新剛男18 200801005張惠女19 圖10-1 學(xué)生文件 文件又可分為定長文件和不定長文件。文件又可分為定長文件和不定長文件。 和其它數(shù)據(jù)結(jié)構(gòu)一樣,文件結(jié)構(gòu)也包括和其它數(shù)據(jù)結(jié)構(gòu)一樣,文件結(jié)構(gòu)也包括邏輯結(jié)邏輯結(jié) 構(gòu)、存儲結(jié)構(gòu)以及文件上的各種操作構(gòu)、存儲結(jié)構(gòu)以及文件上的各種操作這這3個方面。
4、個方面。 文件的操作是定義在邏輯結(jié)構(gòu)上的,但操作的具體文件的操作是定義在邏輯結(jié)構(gòu)上的,但操作的具體 實現(xiàn)要在存儲結(jié)構(gòu)上進(jìn)行實現(xiàn)要在存儲結(jié)構(gòu)上進(jìn)行 若文件中記錄含有的信息長度相同,則稱這類若文件中記錄含有的信息長度相同,則稱這類 記錄為定長記錄,由這種定長記錄組成的文件稱為記錄為定長記錄,由這種定長記錄組成的文件稱為 定長文件;若文件中記錄含有的信息長度不等,則定長文件;若文件中記錄含有的信息長度不等,則 稱為不定長文件稱為不定長文件。 10.1.2文件的邏輯結(jié)構(gòu)及操作文件的邏輯結(jié)構(gòu)及操作 文件的邏輯結(jié)構(gòu)是指文件的外部組織形式,文件的邏輯結(jié)構(gòu)是指文件的外部組織形式, 是用戶對數(shù)據(jù)的表示和存取方式
5、。是用戶對數(shù)據(jù)的表示和存取方式。 文件中各記錄之間存在著邏輯關(guān)系,當(dāng)一個文件中各記錄之間存在著邏輯關(guān)系,當(dāng)一個 文件的各記錄按照某種次序排列起來時,各記錄文件的各記錄按照某種次序排列起來時,各記錄 之間自然地形成了一種線性關(guān)系。文件中的各個之間自然地形成了一種線性關(guān)系。文件中的各個 記錄最多只有一個前驅(qū)記錄和一個后繼記錄,而記錄最多只有一個前驅(qū)記錄和一個后繼記錄,而 文件的第一個記錄只有后繼記錄沒有前驅(qū)記錄,文件的第一個記錄只有后繼記錄沒有前驅(qū)記錄, 文件的最后一個記錄只有前驅(qū)記錄沒有后繼記錄。文件的最后一個記錄只有前驅(qū)記錄沒有后繼記錄。 所以可以把文件看成是線性結(jié)構(gòu)。所以可以把文件看成是線性
6、結(jié)構(gòu)。 文件上的操作主要有兩類:檢索和維護。文件上的操作主要有兩類:檢索和維護。 文件檢索文件檢索就是在文件中查找滿足條件的記錄,就是在文件中查找滿足條件的記錄, 可以按記錄的邏輯號查找,也可以按關(guān)鍵字查可以按記錄的邏輯號查找,也可以按關(guān)鍵字查 找。找。 文件維護文件維護主要是指對文件進(jìn)行記錄的插入、主要是指對文件進(jìn)行記錄的插入、 刪除及修改等更新操作。刪除及修改等更新操作。 10.1.3文件的存儲結(jié)構(gòu)文件的存儲結(jié)構(gòu) 文件的存儲結(jié)構(gòu)是指文件在物理存儲文件的存儲結(jié)構(gòu)是指文件在物理存儲 介質(zhì)(磁盤或磁帶)上的組織形式,它決介質(zhì)(磁盤或磁帶)上的組織形式,它決 定了文件信息在存儲設(shè)備上的存儲位置。定
7、了文件信息在存儲設(shè)備上的存儲位置。 文件的存取方式與文件的物理結(jié)構(gòu)有 關(guān)。采用不同的組織形式就得到不同的存 儲結(jié)構(gòu)?;镜慕M織有順序組織、索引組 織和Hash組織。 順序文件是指記錄按其在文件中的邏順序文件是指記錄按其在文件中的邏 輯順序依次存入存儲介質(zhì)而建立的,即順輯順序依次存入存儲介質(zhì)而建立的,即順 序文件中物理記錄的順序和邏輯記錄的順序文件中物理記錄的順序和邏輯記錄的順 序是一致的。若順序文件中的記錄按關(guān)鍵序是一致的。若順序文件中的記錄按關(guān)鍵 字有序,則稱此順序文件為有序順序文件,字有序,則稱此順序文件為有序順序文件, 否則稱為無序順序文件。否則稱為無序順序文件。 10.2 順序文件順序
8、文件 順序文件有如下特點:順序文件有如下特點: (1)存取第存取第i個記錄,必須先存取前面的第個記錄,必須先存取前面的第 i-1個記錄。個記錄。 (2)插入的新記錄只能加在文件的末尾。插入的新記錄只能加在文件的末尾。 (3)若要更新文件中的某個記錄,必須將整若要更新文件中的某個記錄,必須將整 個文件進(jìn)行復(fù)制。個文件進(jìn)行復(fù)制。 順序文件在存儲介質(zhì)中可以有兩種順序文件在存儲介質(zhì)中可以有兩種 不同的實現(xiàn)結(jié)構(gòu):連續(xù)結(jié)構(gòu)和鏈結(jié)構(gòu)。不同的實現(xiàn)結(jié)構(gòu):連續(xù)結(jié)構(gòu)和鏈結(jié)構(gòu)。 連續(xù)結(jié)構(gòu)是指邏輯上相鄰的記錄其存連續(xù)結(jié)構(gòu)是指邏輯上相鄰的記錄其存 儲位置是相鄰的,鏈結(jié)構(gòu)是指物理記錄之儲位置是相鄰的,鏈結(jié)構(gòu)是指物理記錄之
9、間的次序由指針鏈來表示。這兩種結(jié)構(gòu)對間的次序由指針鏈來表示。這兩種結(jié)構(gòu)對 應(yīng)的順序文件分別稱為連續(xù)順序文件和鏈應(yīng)的順序文件分別稱為連續(xù)順序文件和鏈 接順序文件。接順序文件。 圖圖10-2為一個具有為一個具有4個邏輯塊的連續(xù)結(jié)個邏輯塊的連續(xù)結(jié) 構(gòu)文件,其邏輯塊號構(gòu)文件,其邏輯塊號0、1、2、3依次存放在依次存放在 物理塊物理塊15、16、17、18中。中。 文件第1物理塊號(15) 文件長度(4) 文件說明信息 15161718 物理設(shè)備 物理塊號 012 3對應(yīng)邏輯塊號 圖10-2 連續(xù)結(jié)構(gòu) 連續(xù)結(jié)構(gòu)的優(yōu)點是: (2)(2)順序訪問速度快,對于等長記錄的連順序訪問速度快,對于等長記錄的連 續(xù)文
10、件可以進(jìn)行順序存取,也可以進(jìn)行類續(xù)文件可以進(jìn)行順序存取,也可以進(jìn)行類 似折半查找的隨機存取,但是對于不等長似折半查找的隨機存取,但是對于不等長 記錄的連續(xù)文件只能進(jìn)行順序存??;記錄的連續(xù)文件只能進(jìn)行順序存?。?(3)(3)因為數(shù)據(jù)集中存放在連續(xù)的盤塊中,因為數(shù)據(jù)集中存放在連續(xù)的盤塊中, 訪問時所需的尋道次數(shù)和尋道時間少。訪問時所需的尋道次數(shù)和尋道時間少。 (1)(1)結(jié)構(gòu)簡單;結(jié)構(gòu)簡單; 連續(xù)結(jié)構(gòu)存儲的缺點:連續(xù)結(jié)構(gòu)存儲的缺點: (1) (1)由于插入和刪除記錄會引起其它由于插入和刪除記錄會引起其它 記錄的移動,在外存中執(zhí)行此操作會引記錄的移動,在外存中執(zhí)行此操作會引 起磁頭的頻繁來回移動,因
11、此連續(xù)結(jié)構(gòu)起磁頭的頻繁來回移動,因此連續(xù)結(jié)構(gòu) 只能在文件的末尾插入記錄,刪除記錄只能在文件的末尾插入記錄,刪除記錄 時,只作標(biāo)記進(jìn)行邏輯刪除,只有用戶時,只作標(biāo)記進(jìn)行邏輯刪除,只有用戶 指定物理刪除時才真正刪除相應(yīng)記錄,指定物理刪除時才真正刪除相應(yīng)記錄, 進(jìn)行記錄的移動;進(jìn)行記錄的移動; (2) (2)順序文件需要連續(xù)的盤塊存放數(shù)順序文件需要連續(xù)的盤塊存放數(shù) 據(jù),因此,在插入記錄時如果原來分配的據(jù),因此,在插入記錄時如果原來分配的 盤塊已沒有空閑空間,而與其鄰接的盤塊盤塊已沒有空閑空間,而與其鄰接的盤塊 也不空閑時,需要重新在外存中查找新的也不空閑時,需要重新在外存中查找新的 較大的空閑空間,
12、并將原有數(shù)據(jù)移動到新較大的空閑空間,并將原有數(shù)據(jù)移動到新 空間中,然后才能插入新的數(shù)據(jù),因此,空間中,然后才能插入新的數(shù)據(jù),因此, 連續(xù)結(jié)構(gòu)不易動態(tài)增長,而且外存容易存連續(xù)結(jié)構(gòu)不易動態(tài)增長,而且外存容易存 在碎片。在碎片。 圖圖10-3為一個為一個4個邏輯塊的鏈結(jié)構(gòu)文件的物理存儲。個邏輯塊的鏈結(jié)構(gòu)文件的物理存儲。 使用鏈結(jié)構(gòu)時,只要指明該文件的第一個塊號就可以使用鏈結(jié)構(gòu)時,只要指明該文件的第一個塊號就可以 按鏈指針檢索整個文件。按鏈指針檢索整個文件。鏈結(jié)構(gòu)的另一個特點是文件鏈結(jié)構(gòu)的另一個特點是文件 長度可以動態(tài)地增長,只要調(diào)整鏈指針就可插入或刪長度可以動態(tài)地增長,只要調(diào)整鏈指針就可插入或刪 除
13、一個信息塊。除一個信息塊。 鏈結(jié)構(gòu)文件適用于順序存取,鏈結(jié)構(gòu)文件適用于順序存取,不便于進(jìn)行直接存取不便于進(jìn)行直接存取, 存取第存取第i個記錄,必須搜索在它之前的個記錄,必須搜索在它之前的i-1個記錄。個記錄。 文件第1物理塊號(15) 文件說明信息 18 物理塊號15 0 20 物理塊號18 1 25 物理塊號20 2 物理塊號25 3 圖10-3 鏈結(jié)構(gòu) (1) (1)提高了磁盤空間利用率,解決了提高了磁盤空間利用率,解決了 磁盤碎片問題;磁盤碎片問題; (2)(2)便于文件的插入和刪除操作;便于文件的插入和刪除操作; 鏈結(jié)構(gòu)主要優(yōu)點是:鏈結(jié)構(gòu)主要優(yōu)點是: (3) (3)便于文件的動態(tài)增長。
14、便于文件的動態(tài)增長。 從本質(zhì)上講,順序文件就是線性表,因而對順序從本質(zhì)上講,順序文件就是線性表,因而對順序 文件的各種操作與線性表類似,但是,外存的訪問速文件的各種操作與線性表類似,但是,外存的訪問速 度比主存要慢的多,在考慮算法時要立足于盡量減少度比主存要慢的多,在考慮算法時要立足于盡量減少 外存的訪問次數(shù),尋道次數(shù)和尋道時間。外存的訪問次數(shù),尋道次數(shù)和尋道時間。 10.3 索引文件索引文件 10.3.1 ISAM文件文件 10.3.2 VSAM文件文件 10.3.1 ISAM ISAM文件文件 1. ISAM文件組成文件組成 ISAM為為Indexed Sequential Access
15、Method(索引順?biāo)饕?序存取方法序存取方法)的縮寫,它是一種專為磁盤存取文件設(shè)計的的縮寫,它是一種專為磁盤存取文件設(shè)計的 文件組織方式,采用靜態(tài)索引結(jié)構(gòu)。文件組織方式,采用靜態(tài)索引結(jié)構(gòu)。 由于磁盤是以盤組、柱面和磁道三級地址存取的設(shè)由于磁盤是以盤組、柱面和磁道三級地址存取的設(shè) 備,所以可對磁盤上的數(shù)據(jù)文件建立盤組、柱面和磁道備,所以可對磁盤上的數(shù)據(jù)文件建立盤組、柱面和磁道 三級索引。三級索引。 磁道索引中的每一個索引項,都由兩個子索引項組磁道索引中的每一個索引項,都由兩個子索引項組 成:基本索引和溢出索引項成:基本索引和溢出索引項,每一子索引項又由關(guān)鍵字和每一子索引項又由關(guān)鍵字和 指針兩
16、項組成。指針兩項組成。 基本索引項關(guān)鍵字記錄該磁道中最大(最末 一個記錄)的關(guān)鍵字,指針記錄該磁道中第一記 錄的位置; 溢出索引項記錄該磁道中溢出的記錄的最大關(guān) 鍵字,指針記錄溢出區(qū)中的第一個記錄。 柱面索引每一索引項由關(guān)鍵字和指針兩項組 成,關(guān)鍵字記錄該柱面中最大(最末一個記錄) 的關(guān)鍵字,指針記錄該柱面中磁道索引的位置。 柱面索引存放在某個柱面上,如果柱面索引過大, 占多個磁道時,則建立柱面索引的索引主索引。 因此,ISAM文件由多級主索引、柱面索引、磁道 索引和主文件組成。文件存放記錄時遵循下面原則: 記錄在同一盤組上存放時,應(yīng)先集中放在一個柱面上, 然后再順序存放在相鄰的柱面上;對同一
17、柱面,則應(yīng) 按盤面的次序順序存放。 最大關(guān)鍵字 該組柱面索引項起始地址 (1) 主索引項結(jié)構(gòu) 最大關(guān)鍵字該柱面磁道索引起始地址 最大關(guān)鍵字該磁道起始地址 溢出鏈表最大關(guān)鍵字溢出鏈表頭指針 (2) 柱面索引項結(jié)構(gòu) (3) 磁道索引項結(jié)構(gòu) 基本索引項溢出索引項 圖10-5 ISAM各種索引結(jié)構(gòu) 各種索引項結(jié)構(gòu)如圖10-5所示。 286 400 C0T0 . 145 220 286 290 301 400 . . C0T1C0Tn 90 145 180 193 220 . C1T0 C2T0 磁道索引 R50R60R70R80R90 R100R120R130R136R145 柱面溢出區(qū) T0 T1
18、T2 柱面C1 磁道索引 R166R167R169R175R180 R182R184R185R189R193 R209R211R213R216R220 柱面溢出區(qū) . . . . . 柱面C2 主索引 柱面索引 磁道索引 基本區(qū) T10 T11 T0 T1 T2 T10 . . . . . . T14 T11 T14 注:C代表柱面,T代表磁道,CiTj代表第i柱面第j磁道,Ri代表關(guān)鍵字為i的記錄 基本區(qū) 圖10-6 ISAM文件結(jié)構(gòu)示意圖 圖圖10-6為一為一ISAM文件結(jié)構(gòu)示意圖,從圖中可看出,主索文件結(jié)構(gòu)示意圖,從圖中可看出,主索 引是柱面索引的索引,這里只有一級主索引。引是柱面索引的
19、索引,這里只有一級主索引。 當(dāng)文件占用的柱面索引很大,使得一級主索引也很大時,當(dāng)文件占用的柱面索引很大,使得一級主索引也很大時, 可采用多級主索引。當(dāng)然,若柱面索引較小時,則主索引可省可采用多級主索引。當(dāng)然,若柱面索引較小時,則主索引可省 略。通常主索引和柱面索引放在同一個柱面上略。通常主索引和柱面索引放在同一個柱面上(圖圖10-6是放在是放在0 號柱面上號柱面上),主索引放在該柱面最前面的一個磁道上(圖,主索引放在該柱面最前面的一個磁道上(圖10-6中中 放在放在0柱面柱面0磁道上),其后的磁道中存放柱面索引。每個存放磁道上),其后的磁道中存放柱面索引。每個存放 主文件的柱面都建立有一個磁道
20、索引,放在該柱面的最前面的主文件的柱面都建立有一個磁道索引,放在該柱面的最前面的 磁道磁道T0上,其后的若干個磁道是存放主文件記錄的基本區(qū),該上,其后的若干個磁道是存放主文件記錄的基本區(qū),該 柱面最后的若干個磁道是溢出區(qū)。基本區(qū)中的記錄是按主關(guān)鍵柱面最后的若干個磁道是溢出區(qū)。基本區(qū)中的記錄是按主關(guān)鍵 字大小順序字大小順序存儲存儲的,溢出區(qū)的,溢出區(qū) 被整個柱面上的基本區(qū)中各磁道共被整個柱面上的基本區(qū)中各磁道共 享,當(dāng)基本區(qū)中某磁道溢出時,就將該磁道的溢出記錄,按主享,當(dāng)基本區(qū)中某磁道溢出時,就將該磁道的溢出記錄,按主 關(guān)鍵字大小鏈成一個鏈表關(guān)鍵字大小鏈成一個鏈表(溢出鏈表溢出鏈表)放入溢出區(qū)。
21、放入溢出區(qū)。 2. ISAM文件的檢索文件的檢索 在在ISAM文件上檢索記錄時,從主索引出發(fā),文件上檢索記錄時,從主索引出發(fā), 找到相應(yīng)的柱面索引;從柱面索引找到記錄所在柱找到相應(yīng)的柱面索引;從柱面索引找到記錄所在柱 面的磁道索引;從磁道索引找到記錄所在磁道的起面的磁道索引;從磁道索引找到記錄所在磁道的起 始地址,由此出發(fā)在該磁道上進(jìn)行順序查找,直到始地址,由此出發(fā)在該磁道上進(jìn)行順序查找,直到 找到為止。若找遍該磁道均不存在此記錄,則表明找到為止。若找遍該磁道均不存在此記錄,則表明 該文件中無此記錄;若被查找的記錄在溢出區(qū),則該文件中無此記錄;若被查找的記錄在溢出區(qū),則 可從磁道索引項的溢出索
22、引項中得到溢出鏈表的頭可從磁道索引項的溢出索引項中得到溢出鏈表的頭 指針,然后對該表進(jìn)行順序查找。指針,然后對該表進(jìn)行順序查找。 例如,要在圖10-6中查找記錄R136,先查主索引, 即讀入C0T0;因為136286,則查找柱面索引的C0T1, 即讀人C0T1;因為136145,所以進(jìn)一步把C1T0讀入內(nèi) 存;查磁道索引,因為90136145,所以C1T2即為 R136所存放的磁道,讀人C1T2后即可查得R136。 為了提高檢索效率,通常可讓主索引常駐內(nèi)存,為了提高檢索效率,通??勺屩魉饕qv內(nèi)存, 并將柱面索引放在數(shù)據(jù)文件所占空間居中位置的柱面并將柱面索引放在數(shù)據(jù)文件所占空間居中位置的柱面
23、上,這樣,從柱面索引查找到磁道索引時,磁頭移動上,這樣,從柱面索引查找到磁道索引時,磁頭移動 距離的平均值最小。距離的平均值最小。 3.ISAM3.ISAM文件的插入操作文件的插入操作 當(dāng)插人新記錄時,首先找到它應(yīng)插入的當(dāng)插人新記錄時,首先找到它應(yīng)插入的 磁道磁道, ,若該磁道不滿,則將新記錄插入該磁道若該磁道不滿,則將新記錄插入該磁道 的適當(dāng)位置上即可;若該磁道已滿,則新記的適當(dāng)位置上即可;若該磁道已滿,則新記 錄或者插在該磁道上,或者直接插入到該磁錄或者插在該磁道上,或者直接插入到該磁 道的溢出鏈表上。插入后,可能要修改磁道道的溢出鏈表上。插入后,可能要修改磁道 索引中的基本索引項和溢出索
24、引項。索引中的基本索引項和溢出索引項。 (1)插入插入R65,首先將,首先將1柱面柱面1磁道中大于磁道中大于65的記錄順次后移,的記錄順次后移, 導(dǎo)致導(dǎo)致R90溢出至溢出區(qū)溢出至溢出區(qū)T110(11磁道磁道0塊中塊中),造成磁道,造成磁道T1中最大中最大 關(guān)鍵字成為關(guān)鍵字成為R80,修改磁道索引,將基本項中最大關(guān)鍵字,修改磁道索引,將基本項中最大關(guān)鍵字90修改修改 為為80,將溢出項中最大關(guān)鍵字改為,將溢出項中最大關(guān)鍵字改為90,指針指向,指針指向T110(溢出鏈(溢出鏈 表頭在表頭在11磁道磁道0塊中),然后在相應(yīng)位置插入塊中),然后在相應(yīng)位置插入R65。 例如,在圖例如,在圖10-6中依次
25、插入中依次插入R65 R95和和R83。 (2)插入插入R95,使得,使得T2中的中的R145溢出至溢出區(qū)溢出至溢出區(qū)T111,修改,修改 相應(yīng)磁道索引。相應(yīng)磁道索引。(3)插入插入R83,因為,因為80830)/比較性別比較性別 return else return 0; int compareAge(STREC r1,STREC r2) if (r1.age r2.age)/比較年齡比較年齡 return 1; else return 0; 有了記錄屬性的比較函數(shù),下面可以設(shè)計通用記錄排序函數(shù),有了記錄屬性的比較函數(shù),下面可以設(shè)計通用記錄排序函數(shù), 排序函數(shù)中根據(jù)排序的次關(guān)鍵字不同調(diào)用不同
26、的比較函數(shù)。排序函數(shù)中根據(jù)排序的次關(guān)鍵字不同調(diào)用不同的比較函數(shù)。 int studentSort(STREC rs,int len,int (*comp)(STREC r1, STREC r2 ) ) /排 序函數(shù),最后一個參數(shù)為函數(shù)指針 int i,j; STREC temp; for(i=0;ilen -1;i+) for(j=i+1;jlen;j+) if(*comp)(rsi,rsj)/*用函數(shù)指針調(diào)用傳入的比較函數(shù) */ temp=rsj;rsj=rsi;rsi=temp; return 0; void invertSex(STREC *rs, int len) /*實現(xiàn)性別倒排表,將倒排表寫到stSex.txt中,函數(shù)中rs為記錄數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度航空器改裝及性能提升合同3篇
- 二零二五年度臨時工酒店餐飲服務(wù)合同4篇
- 全球電子商務(wù)稅收政策2025年度協(xié)調(diào)執(zhí)行合同
- 2025年度毛皮原料電商平臺開發(fā)合同4篇
- 2025-2030年中國高山反季節(jié)蔬菜行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報告
- 食品加工行業(yè)二零二五年度食品安全HSE協(xié)議范本3篇
- 2025-2030年中國鐵路道岔產(chǎn)業(yè)運行現(xiàn)狀及投資發(fā)展前景預(yù)測報告新版
- 2025-2030年中國金屬銦行業(yè)發(fā)展?fàn)顩r及投資前景研究報告
- 2025-2030年中國造紙級滑石粉行業(yè)發(fā)展趨勢及投資策略分析報告
- 2025-2030年中國過硫酸鹽行業(yè)運行現(xiàn)狀及發(fā)展前景預(yù)測報告
- 2024年度醫(yī)院肝膽外科實習(xí)生帶教計劃課件
- 微機原理與接口技術(shù)考試試題及答案(綜合-必看)
- 勞務(wù)投標(biāo)技術(shù)標(biāo)
- 研發(fā)管理咨詢項目建議書
- 濕瘡的中醫(yī)護理常規(guī)課件
- 轉(zhuǎn)錢委托書授權(quán)書范本
- 一種配網(wǎng)高空作業(yè)智能安全帶及預(yù)警系統(tǒng)的制作方法
- 某墓園物業(yè)管理日常管護投標(biāo)方案
- 蘇教版六年級數(shù)學(xué)上冊集體備課記載表
- 內(nèi)蒙古匯能煤電集團有限公司長灘露天煤礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 22S702 室外排水設(shè)施設(shè)計與施工-鋼筋混凝土化糞池
評論
0/150
提交評論