Struktur Data

Struktur Data

Dalam ilmu komputer, suatu struktur data adalah cara penyimpanan, penyusunan dan konfigurasi data di dalam media penyimpanan komputer. Data tersebut dapat digunakan secara efisien.


Dalam teknik pemrograman, struktur data membuat data tata letak yang berisi data kolom-kolom, baik itu kolom yang tampak oleh pengguna ( user ) atau pun kolom yang hanya digunakan untuk pengguna yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-dinasi catatan tersebut ( catatan ). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang sangat sesuai dengan pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, suatu struktur data dapat digunakan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata ( pengolah kata ) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-sebarang-sebar (spreadsheet), pangkal-data ( database ), kata pengobatan, citra yang dipampat (dikompres), juga pemampatan dengan teknik struktur data yang khusus.

1. Larik ( Array )

Larik (Bahasa Inggris: array ), dalam ilmu komputer, adalah data tipe terstruktur yang dapat menyimpan banyak data dengan nama-nama yang sama dan bergiliran di memori yang berurutan (kontinu) serta data bertipe sama pula.

Larik dapat diakses berdasarkan indeksnya. Indeks larik umumnya dimulai dari 0 dan ada pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan perulangan ( perulangan ).

Larik Satu Dimensi


Larik satu dimensi adalah jenis larik dasar dan jenis yang paling sering digunakan dalam string data tipe (terutama dalam bahasa pemrograman C).

Larik Dua Dimensi


Larik dua dimensi merupakan tipe larik yang lain. Larik dua dimensi yang digunakan untuk merepresentasikan tabel dan matriks dalam pemrograman.

Larik dalam beberapa bahasa pemrograman

Bahasa Pascal


Larik dalam bahasa Pascal dapat dihitung dengan indeks awal dan indeks terakhir.

Contoh:

program larik; 
var arr: array [1..10] dari integer; // larik dengan indeks awal 1 dan indeks akhir 10 
mulai 
arr [1]: = 5; // memasukkan nilai ke indeks 1 
writeln (arr [i]); // cetak angka 5 
akhir.

Bahasa C


Larik dalam bahasa Culai dari indeks 0. Larik dapat secara statik atau dinamik. Jika statis statik, ukuran akan tetap dari program awal hingga akhir program. Jika didefinisikan dinamik, ukuran dapat berubah selama program berjalan seperti berlangsung tempat di memori heap. Proses pemesanan tempat pada memori disebut dengan deposito. Sedangkan proses pembebasan memori yang sudah dipesan disebut dengan dealokasi.

Contoh larik statik:

#include <stdio.h> 
int main () { 
int arr [10]; // indeks awal 0 dan indeks akhir 9 
arr [0] = 5; 
printf ("% d \ n", arr [0]); 
}

Contoh larik dinamik: 

#include <malloc.h> 
int main () { 
int * arr; 
arr = (int *) malloc (10 * sizeof (int)); // memesan 10 tempat pada memori 
arr [0] = 5; 
bebas (arr); // menghancurkan larik. Memori pada heapinggal 
arr = (int *) malloc (5 * sizeof (int)); // memesan 5 tempat baru pada memori 
gratis (arr); // di akhir program jangan lupa untuk menghancurkan larik dinamik 
}

Bahasa Jawa


Dalam bahasa Jawa data tipe larik direpresentasikan sebagai sebuah objek khusus. Karena itu pada bahasa Jawa larik yang dibuat selalu bersifat dinamis. Namun masih ada dinamik, larik pada bahasa Java tidak perlu dihancurkan karena proges penghancuran dilakukan secara otomatis pada prosedur yang disebut dengan Pengumpulan sampah (Inggris: Pengumpulan Sampah ). Sama seperti bahasa C, indeks larik selalu dimulai dari 0.

Contoh:

kelas publik larik { 
public static void main (String args []) { 
int [] arr = new arr [10]; 
arr [0] = 5; 
System.out.println (arr [0]); 

}

PHP


Sama seperti di JAVA larik di PHP juga merupakan objek yang lebih jauh lagi peta terorder. Ada dua tipe larik di PHP, berindeks array ( array sederhana ) dan array yang terkait ( array nilai ). Di PHP, elemen larik bisa berupa string, Bilangan, boolean, dan semua data tipe primitif lainnya, termasuk juga dapat menjadi elemen larik lainnya. 

Cara medefinisikan larik:

#mendefinisikan array kosong 
$ larik = array ();

Contoh array terindeks (array sederhana):

$ jam = larik (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); 
$ hari = array ('senin', 'selasa', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu');

Contoh array yang terkait:

$ bulan = array ('1' => 'Januari', '2' => 'Februari', '3' => 'Maret', '4' => 'April');

$ componentsKalender = array ( 
'bulan' => array (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), 
'hari' => array ('senin', 'selasa ',' selasa ',' rabu ',' kamis ',' jumat ',' sabtu ') 
);

2. Stack (Tumpukan)

Dalam ilmu komputer, tumpukan atau tumpukan merupakan kumpulan objek yang menggunakan prinsip LIFO (Last In First Out) , yaitu data yang terakhr kali pertama kali akan habis dari tumpukan tersebut. Stack dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri Stack:

* Elemen TOP (puncak) 
Melihat * penisipan dan menghilangkan elemen yang selalu dilakukan di TOP 
* LIFO 

Pemanfaatan Stack:

* Perhitungan ekspresi aritmatika (posfix) 
* algoritma backtraking (runut balik) 
* jaringan rekursif 

Operasi Stack yang biasanya:

a. Push (input E: typeelmt, input / output data: stack): menambahkan sebuah elemen ke stack 
b. Pop (data input / output: stack, output E: typeelmt): menghapus sebuah elemen stack 
c. IsEmpty () 
d. IsFull () 
e. dan beberapas selektor yang lain

3. Pohon (Pohon)

Dalam ilmu komputer, sebuahPohon adalah struktur data yang digunakan secara umum.

Simpul (simpul)


Sebuah Simpul dapat menggunakan sebuah nilai atau arti dari suatu data atau sentuhan suatu struktur data atau sebuah bagian pohon itu sendiri. Setiap simpul dalam sebuah pohon memiliki nol atau lebih simpul anak- anak , yang berada dibawahnya dalam pohon (tidak ada yang disebut di alam). Sebuah simpul yang memiliki anak dinamakan simpul ayah ( simpul orang tua ) atau simpul leluhur ( simpul leluhur ) atau superior. Sebuah simpul paling banyak memiliki satu ayah. Tinggi dari pohon adalah panjang maksimum ke arah daun. Tinggi dari akar adalah tinggi dari pohon. Kedalaman dari sebuah simpul adalah panjang jalan ke akarnya dari simpul tersebut.

Akar (Root node)


Simpul yang paling atas dalam pohon adalah akar ( root node ). Menjadi simpul teratas, simpul akar tidak akan memiliki orang tua. Ini merupakan kesalahan di mana biasanya digunakan untuk menjalankan dalam pohon. Semua simpul yang dapat Anda temukan dari akar dengan menelusuri lembah atau pranala. (Di tingkat resmi, setiap jalan adalah khas). Dalam diagram, ini secara khusus di gambar paling atas. Di beberapa pohon, seperti tumpukan, akar memiliki sifat khusus. Setiap simpul dalam sebuah gelombang dapat dianggap sebagai akar.

Daun (simpul daun)


Semua simpul yang berada pada tingkat terendah dari pohon dinamakan daun ( simpul daun ). Ketika mereka berada di tingkat bawah, mereka tidak memiliki anak-anak. Seringkali, daun adalah simpul terjauh dari akar. Dalam teori grafik, sebuah daun adalah sebuah sudut dengan tingkat 1 selain akar (kecuali jika pohonnya hanya memiliki satu sudut; maka akarnya adalah daunnya juga). Setiap pohon memiliki daun satu daun. Dalam pohon berdasarkan pemrograman genetik sebuah daun (juga dibilang terminal) adalah bagian terluar dari sebuah program pohon. Jika dibandingkan dengan fungsinya atau simpul dalam, daun tidak memiliki argumen. Di banyak kasus dalam masukan daun-GP ke programnya.

Simpul dalam (Internal node)


Sebuah simpul dalam adalah semua simpul dari pohon yang memiliki anak dan bukan merupakan daun. Beberapa pohon hanya menyimpan data dalam dalam, meskipun hal ini mempengaruhi data dinamika penyimpanan dalam pohon. Sebegai contoh, dengan daun yang kosong, seseorang dapat menyimpan sebuah pohon kosong dengan satu daun. Dengan data yang dapat menyimpan data, tidak dapat menyimpan data kosong kecuali jika seseorang memberikan beberapa jenis data di daun yang menandakan bahwa daun itu kosong (dengan demikian pohon itu sendiri). Cukup, beberapa pohon hanya menyimpan data dalam daun, dan menggunakan metadata yang lain, seperti jarak dalam pohon yang berakar pada node tersebut. Jenis pohon ini berguna untuk jarak yang meragukan.

Sub pohon (Subtrees)


Sebuah sub pohon adalah bagian dari pohon struktur data yang dapat digunakan sebagai pohon lain yang berdiri sendiri. Simpul apapun dalam pohon P, bersama dengan seluruh simpul dibawahnya, membentuk satu pohon dari P. Sub pohon yang terhubung dengan akar pohon tersebut. Sub-pohon yang terhubung dengan balik lain dinamakan sub pohon asli ( subtree yang tepat ).

Penyusunan pohon


Ada dua jenis pohon. Sebuah pohon tidak terurut (pohon tak beraturan) adalah pohon berbahan dasar mata-mata, yang dapat memberikan suatu simpul yang tidak memiliki susunan untuk anak-anak dari simpul tersebut. Sebuah pohon-seperti susunan ditentukan, sebagai contoh dengan mengisi bilangan asli berbeda ke setiap anak dari simpul tersebut, dinamakan sebuah pohon terurut (pohon pesanan), dan struktur data yang dibangun di dalamnya dinamakan pohon terurut struktur data (struktur data pohon yang diurutkan ). Sejauh ini pohon terurut menjadi bentuk umum dari pohon struktur data. Pohon biner terurut2 dari jenis pohon terurut.

Hutan


Sebuah hutan adalah sebuah himpunan yang terdiri dari pohon terurut. Lintasan inorder, preorder, dan postorder didefinisikan oleh rekursif untuk hutan.

- inorder
1. lewati inorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada 
2. lewat akar dari pohon pertama. 
3. lewati inorder hutan yang digunakan oleh sisa pohon dalam hutan, jika ada.

- preorder
1. lewat akar dari pohon pertama. 
2. Lewati preorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada 
3. lewati preorder hutan yang digunakan oleh sisa pohon dalam hutan, jika ada.

- postorder
1. lewati postorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada 
2. lewati postorder hutan yang digunakan oleh sisa pohon dalam hutan, jika ada. 
3. lewat akar dari pohon pertama.

Penggambaran pohon


Ada banyak cara untuk Pintar pohon; pada umumnya penggebar-luruhan itu sebagai data yang dialokasikan pada heap (struktur data heap struktur) yang mengacu pada data, atau keduanya, atau seperti data dalam array, dengan korelasi yang ditentukan oleh posisi mereka dalam array (contoh binary heap).

Pohon sebagai grafik


Dalam teori grafik, sebuah pohon adalah sebuah grafik asiklis yang terhubung. Pohon yang berakar adalah sebuah pohon dengan sudut tunggal diluar akar. Dalam kasus ini, dua sudut apa yang terhubung dengan satu sisi mewarisi hubungan orang tua dan anak. Sebuah grafik asiklis dengan bermacam-macam komponen yang terhubung atau himpunan dari pohon-pohon yang berakar kadang-kadang disebut hutan.

Metode traversal


Melangkah menggunakan materi dari pohon, dengan arti dari hubungan antara orang tua dan anak, dinamakan pencarian pohon, dan tindakannya adalah sebuah jalan dari pohon. Seringkali, sebuah operasi mungkin dapat dilakukan sebagai penunjuk pada tiang khusus. Sebuah pencarian di mana setiap simpul ayah sebelum sebelum dinamakan pre-order berjalan , yaitu sebuah pencarian dimana lokasi sebelum gerakan masing-masing dinamakan post-order walk.

Operasi umum


* Menghitung seluruh materi (item) 
* Pencarian untuk materi 
* Gunakan bahan-bahan tertentu dalam pohon 
* Menghapus sebuah materi 
* Mengeluarkan seluruh bagian dari pohon pemangkasan 
* Membuat lingkaran kayu di bagian 
tengah

Penggunaan umum


* Memanipulasi data secara hierarki 
* Membuat informasi mudah untuk dicari 
* Memanipulasi daftar data yang diurutkan

Komentar

Posting Komentar

Postingan populer dari blog ini

Array dalam bahasa pemrograman