Baru -baru ini, saya telah meninjau struktur data dan menerapkan tumpukan sendiri. Tumpukan adalah jenis tabel yang membatasi penyisipan dan penghapusan hanya satu posisi. Operasi yang paling mendasar adalah di dalam dan di luar tumpukan, sehingga juga disebut tabel "pertama masuk dan keluar".
Pertama, mari kita pahami konsep tumpukan:
Tumpukan adalah tabel linier yang membatasi operasi penyisipan dan penghapusan hanya di header tabel. Terkadang itu juga disebut LIFO (terbaru dalam tabel Out First). Untuk memahami konsep ini, Anda harus terlebih dahulu memahami makna asli "tumpukan", sehingga Anda dapat memahami esensi.
"Tumpukan" berarti tempat di mana barang disimpan atau penumpang dapat diperluas ke gudang atau stasiun transit. Oleh karena itu, ia dimasukkan ke dalam bidang komputer, yang mengacu pada tempat di mana data disimpan sementara, jadi ada pepatah bahwa ia memasuki tumpukan dan keluar dari tumpukan.
Metode implementasi adalah sebagai berikut: Pertama -tama tentukan antarmuka, dan kemudian terapkan tumpukan linier dan tumpukan rantai melalui antarmuka ini. Kode ini relatif sederhana, sebagai berikut:
Paket com.peter.java.dsa.interfaces;/*** Definisi Operasi Stack** @Author Peter Pan*/Public Interface Stack <T> {/* kueri kosong*/boolean isempty ();/* enter stack*/void clear ();/* Bull stack*/t pop ();//enter stack*/void clear ();/* tumpukan Bull*/t pop ();//enter stack*/void clear ();/* tumpukan bull*/t pop ();//enter stack*/void clear ();/tumpruce bow*/t pop ();//enter stack*) long (); Lihat elemen di bagian atas tumpukan, tetapi tidak menghapusnya*/t peek ();/*mengembalikan posisi objek dalam pencarian stack*/int (data t);}Linear Stack: Diimplementasikan dalam array.
Paket com.peter.java.dsa.Common; import com.peter.java.dsa.interfaces.stack;/** * stack linear * * @Author Peter pan */linearstack kelas publik <t>@@@ting = {@suppresswarnings ("uncecked") private t [] (T) {@suppresswarnings ("uncecked") private t [] {@suppresswarnings ("Uncecked") private t [] {@suppresswarnings ("Uncecked") ("UNCCECKED") Private T [] {@Suppress ("Uncecked") Private TRUCED ("UNCCECKED") Boolean isEmpty() {// TODO Auto-generated method stubreturn size == 0;}@Override public void clear() {// TODO Auto-generated method stubfor (int i = 0; i < t.length; i++) {t[i] = null;}size = 0;}@Override public T pop() {// TODO Auto-generated method stubif (size == 0) {return null;} t tmp = t [size-1]; t [size-1] = null; size-; return tmp;}@override public boolean push (data t) {// TODO METODE AUTO-EME-METODE PUTIF (UKURAN> = T.Length) {Ubah Ulang ();} t [ukuran ++] = Data {{{) {{{); Ukuran StubReturn;}@override Public t peek () {// TODO Metode yang dihasilkan otomatis Stubif (size == 0) {return null;} else {return t [size -1];}}/ * pengembalian indeks data -1 jika tidak ada data; over -override Pencarian int publik (t data) {// to doo auto -generated generated generated inder = override PUBLIK PUBLIK (T DATA) {// TO TODO AUTO -GENERATED AUTO -GENERAS i ++) {if (t [i] .Equals (data)) {index = i; break;}} return index;}@SuppressWarnings ("Uncecked") Private Void Ubah () {t [] tmp = (t []) Objek baru [t.length * 2]; for (int i = 0; i <t.pengther = pengthy [i] [t. t.length * 2]; for (int i = 0; i <t.pengther = pengsi [t) [t. t.length * 2]; for (int i = 0; i <t. length = i <t. = null;} t = tmp; tmp = null;}/ * dari kiri ke kanan adalah dari atas ke bawah tumpukan */@override public string toString () {// TODO Metode Auto -dihasilkan auto -stackBuffer Buffer = new stringBuffer (); buffer i--) {buffer.append (t [i] .toString () + ",");} buffer.append ("]"); buffer.replace (buffer.LastIndexof (","), buffer.LastIndexof (",") + 1, ""); Buffer Buffer.ToString ();;Chain Stack: Diimplementasikan melalui satu daftar tertaut.
Paket com.peter.java.dsa.common; import com.peter.java.dsa.interfaces.stack; kelas publik LinkedStack <T> Menerapkan Stack <T> {Node Private Top; ukuran int private; @Override public boolean iSempty () {// TODO Metode auto-generated Metode stubreturn public == 0; Metode yang dihasilkan otomatis stubtop = null; size = 0;}@override public t pop () {// TODO Metode yang dihasilkan otomatis Stubt TopValue = null; if (top! = Null) {topValue = top.Data; node oldtop = top; top = top.prev; oldtop.prev = nullan; node oldtop = top; top = top.prev; oldtop.prev = null; data) {// TODO Metode yang dihasilkan otomatis Stubnode Oldtop = top; top = new node (data); top.prev = oldtop; size ++; return true;}@override public int length () {// TODO METODE AUTO-METODE UKURAN PUPRETURN;} outride Public t peek () {// TODO AUTO-AUTO-AUTO-NOTHER TOULED DOOULED NOUTEGUREC; {topValue = top.data;} return TopValue;}@override Public Int Search (data T) {// TODO Metode yang dihasilkan secara otomatis indeks stubint = -1; node tmp = top; for (int i = 1; i> -1; i--) {if (tmp.data.porals (data 1; i> -1; i--) {ife (tmp.data. tmp.prev;}} tmp = null; return index;}@override public string toString () {// TODO Metode yang dihasilkan otomatis StubStringBuffer buffer = new StringBuffer (); Buffer.Append ("Konten Tumpukan Tertaut:"); node TMP = TOP; untuk (int i = 0 {buffer.append (tmp.toString () + ","); tmp = tmp.prev;} tmp = null; buffer.append ("]"); buffer.replace (class.lastindexof (","), buffer.lastindexof (",") + + 1, "), buffer. data; node prev; node publik (data t) {// TODO Konstruktor yang dihasilkan secara otomatis stubthis.data = data;}}}Pembelajaran masih berlangsung dan kode akan terus diperbarui di masa depan.
Ini adalah semua penjelasan terperinci dari kode tumpukan Data Implementasi Bahasa Java, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!