Trie樹既可用于一般的字典搜索,也可用于索引查找。對于給定的一個字符串a1,a2,a3,...,an.則采用TRIE樹搜索經過n次搜索即可完成一次查找。不過好像還是沒有B樹的搜索效率高,B樹搜索算法復雜度為logt(n+1/2).當t趨向大,搜索效率變得高效。怪不得DB2的訪問內存設置為虛擬內存的一個PAGE大小,而且幀切換頻率降低,無需經常的PAGE切換。
上傳時間: 2016-07-06
上傳用戶:sk5201314
#include <malloc.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define NULL 0 #define MaxSize 30 typedef struct athletestruct /*運動員*/ { char name[20]; int score; /*分數*/ int range; /**/ int item; /*項目*/ }ATH; typedef struct schoolstruct /*學校*/ { int count; /*編號*/ int serial; /**/ int menscore; /*男選手分數*/ int womenscore; /*女選手分數*/ int totalscore; /*總分*/ ATH athlete[MaxSize]; /**/ struct schoolstruct *next; }SCH; int nsc,msp,wsp; int ntsp; int i,j; int overgame; int serial,range; int n; SCH *head,*pfirst,*psecond; int *phead=NULL,*pafirst=NULL,*pasecond=NULL; void create(); void input () { char answer; head = (SCH *)malloc(sizeof(SCH)); /**/ head->next = NULL; pfirst = head; answer = 'y'; while ( answer == 'y' ) { Is_Game_DoMain: printf("\nGET Top 5 when odd\nGET Top 3 when even"); printf("\n輸入運動項目序號 (x<=%d):",ntsp); scanf("%d",pafirst); overgame = *pafirst; if ( pafirst != phead ) { for ( pasecond = phead ; pasecond < pafirst ; pasecond ++ ) { if ( overgame == *pasecond ) { printf("\n這個項目已經存在請選擇其他的數字\n"); goto Is_Game_DoMain; } } } pafirst = pafirst + 1; if ( overgame > ntsp ) { printf("\n項目不存在"); printf("\n請重新輸入"); goto Is_Game_DoMain; } switch ( overgame%2 ) { case 0: n = 3;break; case 1: n = 5;break; } for ( i = 1 ; i <= n ; i++ ) { Is_Serial_DoMain: printf("\n輸入序號 of the NO.%d (0<x<=%d): ",i,nsc); scanf("%d",&serial); if ( serial > nsc ) { printf("\n超過學校數目,請重新輸入"); goto Is_Serial_DoMain; } if ( head->next == NULL ) { create(); } psecond = head->next ; while ( psecond != NULL ) { if ( psecond->serial == serial ) { pfirst = psecond; pfirst->count = pfirst->count + 1; goto Store_Data; } else { psecond = psecond->next; } } create(); Store_Data: pfirst->athlete[pfirst->count].item = overgame; pfirst->athlete[pfirst->count].range = i; pfirst->serial = serial; printf("Input name:) : "); scanf("%s",pfirst->athlete[pfirst->count].name); } printf("\n繼續輸入運動項目(y&n)?"); answer = getchar(); printf("\n"); } } void calculate() /**/ { pfirst = head->next; while ( pfirst->next != NULL ) { for (i=1;i<=pfirst->count;i++) { if ( pfirst->athlete[i].item % 2 == 0 ) { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 5;break; case 2:pfirst->athlete[i].score = 3;break; case 3:pfirst->athlete[i].score = 2;break; } } else { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 7;break; case 2:pfirst->athlete[i].score = 5;break; case 3:pfirst->athlete[i].score = 3;break; case 4:pfirst->athlete[i].score = 2;break; case 5:pfirst->athlete[i].score = 1;break; } } if ( pfirst->athlete[i].item <=msp ) { pfirst->menscore = pfirst->menscore + pfirst->athlete[i].score; } else { pfirst->womenscore = pfirst->womenscore + pfirst->athlete[i].score; } } pfirst->totalscore = pfirst->menscore + pfirst->womenscore; pfirst = pfirst->next; } } void output() { pfirst = head->next; psecond = head->next; while ( pfirst->next != NULL ) { // clrscr(); printf("\n第%d號學校的結果成績:",pfirst->serial); printf("\n\n項目的數目\t學校的名字\t分數"); for (i=1;i<=ntsp;i++) { for (j=1;j<=pfirst->count;j++) { if ( pfirst->athlete[j].item == i ) { printf("\n %d\t\t\t\t\t\t%s\n %d",i,pfirst->athlete[j].name,pfirst->athlete[j].score);break; } } } printf("\n\n\n\t\t\t\t\t\t按任意建 進入下一頁"); getchar(); pfirst = pfirst->next; } // clrscr(); printf("\n運動會結果:\n\n學校編號\t男運動員成績\t女運動員成績\t總分"); pfirst = head->next; while ( pfirst->next != NULL ) { printf("\n %d\t\t %d\t\t %d\t\t %d",pfirst->serial,pfirst->menscore,pfirst->womenscore,pfirst->totalscore); pfirst = pfirst->next; } printf("\n\n\n\t\t\t\t\t\t\t按任意建結束"); getchar(); } void create() { pfirst = (struct schoolstruct *)malloc(sizeof(struct schoolstruct)); pfirst->next = head->next ; head->next = pfirst ; pfirst->count = 1; pfirst->menscore = 0; pfirst->womenscore = 0; pfirst->totalscore = 0; } void Save() {FILE *fp; if((fp = fopen("school.dat","wb"))==NULL) {printf("can't open school.dat\n"); fclose(fp); return; } fwrite(pfirst,sizeof(SCH),10,fp); fclose(fp); printf("文件已經成功保存\n"); } void main() { system("cls"); printf("\n\t\t\t 運動會分數統計\n"); printf("輸入學校數目 (x>= 5):"); scanf("%d",&nsc); printf("輸入男選手的項目(x<=20):"); scanf("%d",&msp); printf("輸入女選手項目(<=20):"); scanf("%d",&wsp); ntsp = msp + wsp; phead = (int *)calloc(ntsp,sizeof(int)); pafirst = phead; pasecond = phead; input(); calculate(); output(); Save(); }
標簽: 源代碼
上傳時間: 2016-12-28
上傳用戶:150501
電阻類3D封裝表貼插裝電阻可調電阻功率電阻封裝庫AD庫PCB庫共100個(ALTIUM 3D封裝庫),列表如下:Component Count : 100Component Name-----------------------------------------------FLQ-0R03FLQ-40A-75mVFLQ-50-3FLQ-50AFLQ-60A-75mVFLQ-OAR5R005FLFFUSE-1210FUSE-1808FUSE-2920IGBT-BSM200GB60DLCIGBT-FF200R12KT4R0.5WR0.25wR1/1-HR1/2-HR1/2-VR1/4-HR1/4-VR1/8R1/16R1W -LR1W-WR2W-LR2W-WR2W-W-1R3W-HR3W-VR608XAR0402R0402SR0603R0805R1206R1210R1808R1812R2010R2512RD20D561KRES ADJ1RES ADJ2RES ADJ3RES-3224WRES-3296PRES-3296WRES-3296XRES-POT-TRRES-POT4MM-2RES-pot3306FRES-RK16312RES-RP8RES-RP9RES-RT-PJ-3314JRES-RV3224WRES-RV3296PRES-RV3296WRES-RV3296XRES-RV3386RES-VR-3RES-VR1RES-VR2RES-VR3RES-VR4RES-VR5RES-VR6RES-VR3296PRES-VR3296WRES-VR3296XRES-VR3306RES-VR3362PRES-VR3362WRES-VR3386RGG-5W-VRGG-5W-WRGG-5W-W-2RGG-10W-WRGG-10W-W -2RGG-20W-Wrgg-R3W-WRGG-R5W-TRGG-R5W-Vrgg-R5W2-wRX21-8WRX27-1VRX27-5W-LRX27-5W-WRX27-7WTVR-5DTVR-7DTVR-10DTVR-14DTVR-14D-NTCTVR-20DTVR-RD15TVR-RD20TVR-RV0.6TVR-RV7DTVR-RV8D-20TVR-RV14DTVR-RV20D
上傳時間: 2022-01-06
上傳用戶:wangshoupeng199
Service Pack 一手搞定.mht Windows 瘦身.mht 創建可引導光盤更完美.mht 裝Win Me-2000免輸序列號.htm
上傳時間: 2015-01-13
上傳用戶:黃華強
題目:參加運動會的N個學校編號為1~N.比賽分成M個男子項目和W個女子項目,項目編號分別為1~M和M+1~M+W.由于個項目參加人數差別較大,有些項目取前5名,得分順序為7,5,3,2,1 還有些項目只取前3名,得分順序為5,3,2.寫一個統計程序產生各種成績單和得分報表.基本要求:產生各學校的成績單,內容包括各校所取得的每項成績的項目號,名次,姓名和得分 產生團體總分報表,內容包括校號,男子團體總分,女子團體總分和團體總分.概要設計:1. 為實現上述程序功能,應以線性表表示集合.2. 本程序包含3個模塊:(1) 各集合定義模塊(2) 線性表實現模塊(3) 主程序模塊
上傳時間: 2013-12-21
上傳用戶:黃華強
slickeditv10.0linuxcrackz.w.t.zip SlickEdit v10.0 for linux 注冊機 在國內網站上找了N天都沒找到,在國外一家網站找到。雖然不是源代碼,但是SlickEdit是Linux下最好用的30多種編程IDE。這個是注冊機安裝文件在百度裡找吧
標簽: 10.0 linuxcrackz slickeditv SlickEdit
上傳時間: 2013-12-10
上傳用戶:大融融rr
Wi n d o w s使應用程序能通過操作系統內建的文件系統服務在網絡上通信。有時候,我們 將之稱為“網絡操作系統”(N O S)能力。
上傳時間: 2013-12-01
上傳用戶:6546544
本章重點是如何在Wi n d o w s套接字應用程序中對I / O(輸入/輸出)操作進行管理。 Wi n s o c k分別提供了“套接字模式”和“套接字I / O模型”,可對一個套接字上的I / O行為加以 控制
上傳時間: 2013-12-14
上傳用戶:Shaikh
c語言。定步長求解龍哥庫塔的方程??梢杂胣來表示方程組得個數。此方法單精度。
上傳時間: 2015-07-12
上傳用戶:yuzsu
范德蒙行列式求解方法,VANDER(X[],W[],Q[],N),在子過程Vander中實現。
上傳時間: 2015-08-29
上傳用戶:fnhhs