11 雜湊1 電話聊天狂人

2021-10-05 19:29:22 字數 2276 閱讀 1395

來自:pta_資料結構_**聊天狂人

給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。

輸入格式:

輸入首先給出正整數n(≤10^5),為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。

輸出格式:

在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則輸出狂人中最小的號碼及其通話次數,並且附加給出並列狂人的人數。

輸入樣例:

413005711862 13588625832

13505711862 13088625832

13588625832 18087925832

15005713862 13588625832

輸出樣例:

13588625832 3

**:

#include

#include

#include

#include

#include

#define keylength 11

#define maxd 5

#define maxtablesize 1000000

/* ——————hashtable定義開始—————— */

typedef

char elementtype[keylength +1]

;typedef

int index;

typedef

struct lnode *ptrtolnode;

struct lnode

;typedef ptrtolnode position;

typedef ptrtolnode list;

typedef

struct tblnode *hashtable;

struct tblnode

;/* ——————hashtable定義結束—————— */

intnextprime

(int n)

;int

hash

(int key,

int p)

;position find

(hashtable h, elementtype key)

;hashtable createtable

(int tablesize)

;bool insert

(hashtable h, elementtype key)

;void

scanandoutput

(hashtable h)

;void

destorytable

(hashtable h)

;int

main()

scanandoutput

(h);

destorytable

(h);

return0;

}int

nextprime

(int n)

return p;

}int

hash

(int key,

int p)

position find

(hashtable h, elementtype key)

hashtable createtable

(int tablesize)

return h;

}bool insert

(hashtable h, elementtype key)

else

}void

scanandoutput

(hashtable h)

else

if(ptr->count == maxcnt)

ptr = ptr->next;}}

printf

("%s %d"

, minphone, maxcnt);if

(pcnt >1)

printf

(" %d"

, pcnt)

;printf

("\n");

}void

destorytable

(hashtable h)

}free

(h->heads)

;free

(h);

}

11 雜湊1 電話聊天狂人

給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如...

11 雜湊1 電話聊天狂人

11 雜湊1 聊天狂人 題意 給出n個聯絡歷史,每個聯絡歷史分別包含兩個 號碼,計算出通話次數最多的號碼和其通話次數。如果有多個通話次數最多的號碼,輸出號碼最小的那個且再輸出通話次數最多的號碼個數。思路 用map容器把每個號碼與通話次數聯立起來,最後遍歷一遍map找到通話次數最多的號碼。map會按照...

11 雜湊1 電話聊天狂人 25分

給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入首先給出正整數nn 10 5 為聯絡歷史條數。隨後n 行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一...