Salah satu jenis struktur data yang banyak digunakan hari ini dalam pengaturcaraan aplikasi adalah timbunan. Keanehannya adalah prinsip mengatur elemen, di mana penambahan dan penghapusannya hanya mungkin dilakukan satu persatu dan hanya melalui "puncak", iaitu menurut prinsip LIFO. Tetapi kadang-kadang perlu membersihkan keseluruhan timbunan sekaligus.
Perlu
- - penyunting teks atau IDE;
- - penterjemah dari bahasa pengaturcaraan yang digunakan.
Arahan
Langkah 1
Gunakan kaedah pada objek tumpukan yang dirancang khusus untuk membersihkan timbunan. Mereka hadir di sebilangan besar kelas yang sesuai dari pelbagai perpustakaan dan kerangka kerja. Contohnya, kelas. NET Stack mempunyai kaedah Clear. Contoh penerapannya di C # mungkin kelihatan seperti ini:
Stack oStack = Stack baru (); // buat objek tumpukan
oStack. Push ("000"); // isi timbunan
oStack. Push ("111");
oStack. Clear (); // kosongkan timbunan
Langkah 2
Kaedah untuk mengubah bilangan elemen kelas kontena, di mana fungsi kelas tumpukan sering dibina, juga dapat digunakan untuk pembersihan. Anda hanya perlu mengurangkan bilangan elemen semasa menjadi sifar. Contohnya, kelas templat Qt QStack mewarisi dari kelas templat QVector, yang mempunyai kaedah mengubah saiz. Contoh penggunaannya seperti ini:
QStack oStack; // pengisytiharan objek timbunan
untuk (int i = 0; i <10; i ++) oStack.push (i); // isi timbunan
oStack.resize (0); // kosongkan timbunan
Langkah 3
Membersihkan objek tumpukan biasanya dapat dilakukan melalui operator penugasan, yang sering dilaksanakan di kelas yang sesuai. Untuk melakukan ini, objek tumpukan yang akan dibersihkan mesti diberikan objek sementara yang dibuat oleh konstruktor lalai. Sebagai contoh, kelas templat tumpukan Pustaka Standard C ++, yang merupakan penyesuai untuk kelas templat kontena, tidak mempunyai kaedah untuk menukar nombor atau membuang semua elemen dengan sewenang-wenangnya. Anda boleh membersihkannya seperti ini:
std:: stack <int, std:: list> oStack; // pengisytiharan objek timbunan
untuk (int i = 0; i <10; i ++) oStack.push (i); // isi timbunan
oStack = std:: timbunan
Langkah 4
Kosongkan objek tumpukan dengan memanggil salinan konstruktor menggunakan operator baru dengan argumen objek yang dibuat oleh konstruktor lalai:
std:: stack <int, std:: list> oStack; // pengisytiharan objek timbunan
untuk (int i = 0; i <10; i ++) oStack.push (i); // isi timbunan
std baru:: timbunan
Langkah 5
Tumpukan dapat dibersihkan dengan mengambil secara berurutan semua elemen menggunakan kaedah yang sesuai:
std:: stack <int, std:: list> oStack; // pengisytiharan objek timbunan
untuk (int i = 0; i <10; i ++) oStack.push (i); // isi timbunan
sementara (! oStack.empty ()) oStack.pop (); // kosongkan timbunan
Walau bagaimanapun, pendekatan ini mempunyai kerumitan waktu yang secara linear bergantung pada jumlah elemen dalam timbunan. Oleh itu, penggunaannya tidak rasional.