반응형
#include <iostream>
#include <string>
using namespace std;
struct node {
string name;
int age;
node* next;
};
node *head[100];
int hasf(int age) {
return age % 10;
}
void addnode(string t, int age) {
node* temp = new node();
temp->name = t;
temp->age = age;
temp->next = head[hasf(age)];
head[hasf(age)] = temp;
}
int main() {
addnode("Sour", 1000000005);
addnode("Dav", 1000000002);
addnode("Nica", 1000000003);
addnode("Timer", 1000000006);
addnode("Pico", 1000000015);
addnode("Topisl", 1000000022);
addnode("Whab", 1000000013);
addnode("Hap", 1000000009);
int ansage;
cin >> ansage;
int hasage = hasf(ansage);
for (node* p = head[hasage];p != NULL;p = p->next) {
if (p->age == ansage) {
cout << p->name;
//break;
}
}
}
1 해시함수
hasf()함수다
age 가 억단위니까 %10으로 완전 줄여서 index를 형성한다.
2 addnode
addnode()함수다
여기서는 메모리풀을 따로 형성하지 않았으므로
temp에다가 new node()로 주소 할당하고
name, age값을 다 넣은 후에 head[해쉬함수로얻은인덱스]에 바로 넣는다.
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
counting sort 문제 풀어보기 (0) | 2020.06.26 |
---|---|
기본 해쉬함수 사용하기 B-> 10 (0) | 2020.06.26 |
head[100]과 myalloc()해보기 (0) | 2020.06.26 |
이름을 해쉬함수 거쳐 바꿔보기 - honors method (0) | 2020.06.23 |
링크드리스트 int 넣기 myalloc함수 만들어서 넣기 (0) | 2020.06.23 |
링크드리스트 건너건너 출력하기 (0) | 2020.06.23 |
메모리 풀로 링크드리스트 만들기 (3) | 2020.06.23 |
runtimeerror 나서 틀린 문제 고기 뒤집기 OXOOX (0) | 2020.06.04 |