Sebelum membahas mengenai Tumpukan (Stack) & Antrian (Queue), maka kita harus menyinggung dulu tentang link list. link list merupakan rangkaian struktur sejenis (bertipe sama) yang dihubungkan dengan menggunakan salah satu (beberapa) field yang bertipe pointer. Menurut cara pengisian dan pengambilan elemennya, link list dibedakan menjadi dua macam, yaitu tumpukan (Stack) & antrian (Queue). a. Stack/Tumpukan Stack adalah jenis link list yang menerapkan konsep LIFO (Last-in First-Out), artyinya elemen struktur yang dimasukkan ke dalam rangkaian terakhir keli apabila ditampilkan kembali maka akan muncul pertama kali. Untuk lebih memahaminya, coba kita bayangkan sebuah tumpukan yang telah selesai dicuci. Di sini piring yang diletakkan pertama kali ke dalam tumpukan tersebut akan di ambil terakhir kali, sedangkan piring yang diletakkan terakhir kali justru akan diambil pertama kali. Cara kerja seperti inilah yang menyebabkan link list ini dinamakan dengan Stack/Tumpukan. Sebagai contoh dari kerja adalah apabila kita memasukkan data secara berurutan seperti di bawah ini: 40 30 20 10 Apabila data tersebut ditampilkan kembali, maka hasil yang akan diberikan adalah sebagai berikut: 10 20 30 40 Untuk membuktikan hal di atas, mari kita perhatikan contoh program berikut ini #include #include /*Mendefinisikan struktur node*/ Operasi-operasi/fungsi Stack b. Antrian (Queue) Queue merupakan kebalikan dari stack, yaitu jenis link list yang menerapkan konsep FIFO (First-In-First-Out). Artinya elemen yang dimasukkan pertama kali apabila ditampilkan akan muncul pertama kali juga. Dengan kata lain, urutan dari keluaran (Output) yang dihasilkan akan sesuai dengan urutan masukan (input) yang dilakuakn. Untuk mempermudah pembahasan, mari kita bayangkan sebuah antrian yang ada di sebuah loket, di situ orang yang dating pertama kali untuk mengantri akan dilayani terlebih dahulu dan yang datang terakhir juga akan dilayani terakhir. Operasi-Operasi Pada Queue - Create() o Untuk menciptakan dan menginisialisasi Queue o Dengan cara membuat Head dan Tail = -1 - IsEmpty() o Untuk memeriksa apakah Antrian sudah penuh atau belum o Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty o Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubahubah o Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail - IsFull() o Untuk mengecek apakah Antrian sudah penuh atau belum o Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh - Enqueue(data) o Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang o Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail - Dequeue() o Digunakan untuk menghapus elemen terdepan/pertama dari Antrian o Dengan cara mengurangi counter Tail dan menggeser semua elemen antrian kedepan. o Penggeseran dilakukan dengan menggunakan looping - Clear() o Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1 o Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca - Tampil() o Untuk menampilkan nilai-nilai elemen Antrian o Menggunakan looping dari head s/d tail
skip to main |
skip to sidebar
Senin, 07 Februari 2011
Tumpukan & Antrian dalam Bahasa C
Tumpukan & Antrian dalam Bahasa C
2011-02-07T10:21:00+07:00
Aswel
Teknologi dan Media komunikasi|
Anda Pengunjung ke...
TerPopuler
-
Sejarah Pragmatisme Aliran ini pertama kali tumbuh Di Amerika pada tahun 1878. Ketika itu Charles Sanders Pierce (1839 – 1914) menerbitkan s...
-
1. Konsep, Esensi dan Kilasan aliran Filsafat Progresivisme Progresivisme adalah suatu gerakan dan perkumpulan yang didirikan pada tahun ...
-
1. Hubungan antara sistem, informasi dan manajemen untuk keperluan pendidikan Sistem adalah seperangkat komponen yang saling berhubung...
-
Setahu ane, cerita Romeo & Juliet ditulis oleh seorang Inggris bernama William ShakeSpeare. Ini cerita begitu menginspirasi dan sudah ba...
-
1. Sebutkan keuntungan dan kerugian media periklanan yang berbeda ? (minimal 3 macam) - Media periklanan televisi Keuntungan: a. Den...
KoMentar
Diberdayakan oleh Blogger.