직접 주소 지정 테이블을 구현하는 C++ 프로그램입니다. 직접 주소 지정 테이블은 각 요소에 범용 집합 S ={0, 1, . . . ,n − 1} 여기서 n은 너무 크지 않고 각 키는 고유합니다. 빠른 삽입, 검색 및 삭제 작업을 용이하게 합니다.
함수 및 의사코드
Begin insert(): Take the table variables word and key as argument. T[ x.key ] = x, where x is a value of key. delete(): Take the table variables word and key as argument. T[ x.key ] = tab(0,” ”) search(): Return T[key] End
예시
#include<iostream> #include<cstdlib> #include<string> #include<cstdio> using namespace std; struct tab { //declaration of variables of the table. string word; int key; tab() {} tab( int k, string w ) //constructor to initialize the variable. { word=w; key = k; } }; void INSERT( tab T[], tab x ) { T[ x.key ] = x; } void DELETE( tab T[], tab x ) { T[ x.key ] = tab(0, ""); } tab SEARCH( tab T[], int key ) { return T[ key ]; } int main() { int i, k, c; string str; tab T[65536]; //initialize size of the table. tab x; for(i = 0; i < 65536;i++) T[i] = tab(0,""); while (1) { cout<<"1.Insert element into the key"<<endl; cout<<"2.Delete element from the table"<<endl; cout<<"3.Search element into the table"<<endl; cout<<"4.Exit"<<endl; cout<<"Enter your Choice: "; cin>>c; switch(c) { case 1: { string str1 = ""; cout<<"Enter the key value: "; cin>>k; cout<<"Enter the string to be inserted: "; cin.ignore(); getline(cin, str); INSERT(T, tab(k, str)); break; } case 2: cout<<"Enter the key of element to be deleted: "; cin>>k; x = SEARCH(T, k); DELETE(T, x); break; case 3: cout<<"Enter the key of element to be searched: "; cin>>k; x = SEARCH(T, k); if (x.key == 0) { cout<<"No element inserted at the key"<<endl; continue; } cout<<"Element at key "<<k<<" is-> "; cout<<"\""<<x.word<<"\""<<endl; break; case 4: exit(1); default: cout<<"Wrong Choice"<<endl; } } return 0; }
출력
1.Insert element into the key 2.Delete element from the table 3.Search element into the table 4.Exit Enter your Choice: 1 Enter the key value: 1 Enter the string to be inserted: hi 1.Insert element into the key 2.Delete element from the table 3.Search element into the table 4.Exit Enter your Choice: 1 Enter the key value: 2 Enter the string to be inserted: tutorials 1.Insert element into the key 2.Delete element from the table 3.Search element into the table 4.Exit Enter your Choice: 1 Enter the key value: 3 Enter the string to be inserted: point 1.Insert element into the key 2.Delete element from the table 3.Search element into the table 4.Exit Enter your Choice: 3 Enter the key of element to be searched: 1 Element at key 1 is-> "hi" 1.Insert element into the key 2.Delete element from the table 3.Search element into the table 4.Exit Enter your Choice: 3 Enter the key of element to be searched: 4 No element inserted at the key 1.Insert element into the key 2.Delete element from the table 3.Search element into the table 4.Exit Enter your Choice: 2 Enter the key of element to be deleted: 1 1.Insert element into the key 2.Delete element from the table 3.Search element into the table 4.Exit Enter your Choice: 3 Enter the key of element to be searched: 1 No element inserted at the key 1.Insert element into the key 2.Delete element from the table 3.Search element into the table 4.Exit Enter your Choice: 4에 삽입