Meja linier
Tabel linier adalah struktur data paling sederhana dan paling umum digunakan. Mereka adalah urutan terbatas yang terdiri dari N elemen data individu (node). Di antara mereka, angka n elemen data adalah panjang tabel. Ketika N adalah nol, itu menjadi tabel kosong. Tabel linier yang tidak kosong biasanya dicatat sebagai:
(A1, A2, ..., AI-1, AI, AI+1, ..., An)
1. Penyimpanan berurutan dan algoritma tabel linier
Penyimpanan berurutan dari tabel linier mengacu pada penyimpanan elemen data tabel linier ke dalam satu set unit penyimpanan kontinu dengan alamat dalam urutan logisnya. Tabel linier yang disimpan dengan cara ini disebut tabel berurutan.
1. Definisi struktural tabel pesanan
SEQList kelas publik { / * Ruang awal adalah 10 * / private static int int list_size = 10; /* Data array digunakan untuk menyimpan elemen*/ data pribadi int []; /* Tabel saat ini panjang, jumlah aktual elemen yang disimpan*/ panjang int pribadi; } 2. Masukkan operasi
Operasi penyisipan tabel berurutan mengacu pada memasukkan elemen baru antara elemen i-1 dan elemen ke-i dari tabel linier. Karena elemen yang berdekatan dari tabel urutan juga berdekatan dalam struktur fisik, hubungan penyimpanan fisik mereka juga harus mengalami perubahan yang sesuai. Kecuali jika saya = n+1, semua elemen mulai dari elemen i-th dari tabel pesanan asli harus dipindahkan ke belakang masing-masing dengan 1 posisi.
/** * Masukkan elemen baru sebelum posisi i-th di node daftar tabel pesanan * @param daftar tabel pesanan * @param i masukkan posisi * @param node elemen baru */public void sersaring (daftar seqlist, int i, int node) {if (i <1 || i> list.length + 1) {System.out.println (" kembali; } if (list.length> = list_size) {system.out.println ("overflow"); kembali; } untuk (int j = list.length - 1; j> = i - 1; j -) { / * Mulai dari elemen terakhir dan pindahkan kembali satu per satu * / list.data [j+1] = list.data [j]; } /* Masukkan elemen baru* / list.data [i-1] = node; / * Tambahkan 1 ke panjang tabel */ list.length ++; } 3. Hapus operasi
Operasi penghapusan tabel berurutan mengacu pada menghapus elemen i-th dalam tabel. Berbeda dengan operasi penyisipan, penyisipan menggerakkan elemen ke belakang, dan operasi penghapusan memindahkan elemen ke depan.
/*** Hapus elemen i-th dalam daftar tabel pesanan dan kembalikan elemen yang dihapus* @param daftar urutan tabel* @param i Posisi elemen* @return node*/deletelist int publik (daftar seqlist, int i) {int node = 0; if (i <0 || i> list.length) {System.out.println ("Posisi Kesalahan"); return node; } node = list.data [i-1]; untuk (int j = i; j <list.length; j ++) { /* elemen forward* / list.data [j-1] = list.data [j]; } list.length -; mengembalikan simpul;} 4. Tabel pesanan terbalik
Pertama, gunakan setengah dari panjang tabel sebagai jumlah kontrol loop kali, bertukar elemen terakhir dalam tabel dalam urutan elemen pertama, bertukar elemen terakhir kedua dalam urutan elemen kedua, dan seterusnya sampai pertukaran selesai.
/*** tabel urutan terbalik* @param daftar tabel pesanan asli* @Return tabel urutan setelah terbalik*/seqlist publik dikonversi (daftar seqlist) {int node; int panjang = list.length/2; untuk (int i = 0; i <panjang; i ++) { /* elemen pertukaran simetris* / int j = list.length - 1 - i; node = list.data [i]; list.data [i] = list.data [j]; list.data [j] = node; } daftar pengembalian; } 2. Penyimpanan rantai dan algoritma tabel linier
Ruang penyimpanan elemen data dari struktur penyimpanan rantai yang menyimpan tabel linier mungkin kontinu atau terputus, sehingga node dari daftar yang ditautkan tidak dapat diakses secara acak. Penyimpanan rantai adalah salah satu metode penyimpanan yang paling umum.
Saat menggunakan struktur penyimpanan rantai untuk mewakili setiap elemen data, selain menyimpan informasi elemen itu sendiri, alamat yang menunjukkan lokasi penyimpanan elemen selanjutnya juga diperlukan. Tabel linier yang diwakili oleh metode penyimpanan ini disebut daftar tertaut.
5. Definisi Struktural Daftar Tertaut Tunggal
LinkList kelas publik { /* Data Field* / data char pribadi; /* Elemen berturut -turut*/ linklist pribadi selanjutnya;} 6. Algoritma Bangunan Meja
Metode penyisipan header dimulai dengan tabel kosong, berulang kali membaca data, menghasilkan simpul baru, menyimpan data yang dibaca di bidang data node baru, dan kemudian memasukkan node baru pada header daftar tertaut saat ini hingga berakhir.
/*** Buat tabel dengan penyisipan header* @param chars character array* @return daftar tertaut tunggal*/public linklist createListF (char [] chars) {linklist node; Head linklist = null; untuk (char ch: chars) { /* berlaku untuk simpul baru* / node = tautan baru (); node.data = ch; /* Arahkan ke simpul pengganti*/ node.next = head; head = node; } /* Kembali ke simpul kepala* / return head;} 7. Metode penyisipan ekor algoritma bangunan
Urutan node dalam tabel penyisipan header adalah kebalikan dari urutan saat memasukkan. Jika urutan input konsisten, metode penyisipan ekor dapat digunakan.
/*** metode penyisipan ekor untuk membuat tabel* @param chars array karakter* @return daftar tertaut tunggal*/createRist linklist publik (char [] chars) {linklist node; Head linklist = null; Linklist belakang = null; untuk (char ch: chars) {node = new linklist (); node.data = ch; if (head == null) { /* Node baru adalah simpul head* / head = node; } else { /* Node sebelumnya menunjuk ke simpul baru* / record.next = node; } /* Ekor tabel menunjuk ke simpul baru* / belakang = simpul; } /* Kembali ke simpul kepala* / return head;}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.