实现直接地址表的C ++程序
这是一个实现直接寻址表的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