Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để triển khai bảng địa chỉ trực tiếp

Đây là một chương trình C ++ để triển khai các bảng địa chỉ trực tiếp. Bảng địa chỉ trực tiếp được sử dụng khi mỗi phần tử có một khóa được rút ra từ một tập hợp phổ quát S ={0, 1 ,. . . , n - 1} trong đó n không quá lớn và mỗi khóa là duy nhất. Nó tạo điều kiện cho các hoạt động chèn, tìm kiếm và xóa nhanh chóng.

Hàm và mã giả

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

Ví dụ

#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;
}

Đầu ra

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