Rumah Keuangan Pribadi Cara membuat Linked List di Pemrograman C - dummies

Cara membuat Linked List di Pemrograman C - dummies

Video: Cara Membuat Single Linked List Di Bahasa Pemrograman Java | MUL CODE 2024

Video: Cara Membuat Single Linked List Di Bahasa Pemrograman Java | MUL CODE 2024
Anonim

Dalam pemrograman C, jika Anda ingin menambahkan kode kedua ke kode yang telah Anda buat, buatlah linked list - rangkaian struktur yang berisi petunjuk satu sama lain. Seiring dengan data dasar dalam suatu struktur, struktur berisi pointer, yang berisi alamat dari struktur berikutnya dalam daftar.

Dengan beberapa juggling juggling dari nama penunjuk, ditambah NULL untuk menutupi akhir daftar, Anda mungkin akan mendapatkan sesuatu yang mirip dengan kode sumber dalam A Primitive Linked-List Example.

CONTOH HIDUP YANG DIMULAI SEBELUMNYA

#include #include #include int main () {struct stock {char symbol [5]; kuantitas int; harga mengapung; struct stock * next;}; struct stock * pertama; saham struct * saat ini; saham struct * baru; / * Buat struktur di memori * / first = (struct stock *) malloc (sizeof (struct stock)); if (first == NULL) {puts ("Beberapa jenis malloc () error"); exit (1);} / * Tetapkan data struktur * / current = first; strcpy (simbol saat ini, "GOOG"); arus-> kuantitas = 100; current-> price = 801. 19; current-> next = NULL; new = (struct stock *) malloc (sizeof (stok struct)); if (new == NULL) {puts ("malok lain () error"); exit (1);} current-> next = new; arus = baru; strcpy (current-> symbol, "MSFT"); arus-> kuantitas = 100; current-> price = 28. 77; current-> next = NULL; / * Tampilkan database * / puts ("Portofolio Investasi"); printf ("SymboltSharestPricetValuen"); arus = pertama; printf ("% - 6st% 5dt%. 2ft%. 2fn", simbol arus->, arus-> kuantitas, arus-> harga, arus-> kuantitas * harga arus->); arus = arus-> berikutnya; printf ("% - 6st% 5dt%. 2ft%. 2fn", simbol arus->, arus-> kuantitas, arus-> harga, arus-> kuantitas * harga arus->); return (0);}

Kode sumber ini cukup panjang, tapi hanya menciptakan struktur kedua, terkait dengan yang pertama. Jangan biarkan panjang kode sumber mengintimidasi Anda.

Baris 13 sampai 15 menyatakan tiga petunjuk struktur standar yang diperlukan untuk tarian linked-list. Secara tradisional, mereka diberi nama dulu, terkini, dan baru. Mereka bermain menjadi anggota keempat dalam struktur, selanjutnya, ditemukan di Baris 11, yang merupakan penunjuk struktur.

Jangan gunakan typedef untuk menentukan variabel struktur baru saat membuat linked list. Contoh Daftar Linked Primitif tidak menggunakan typedef, jadi ini bukan masalah dengan kode, namun banyak pemrogram C menggunakan typedef dengan struktur. Hati-hati!

Nama variabel yang baru, yang digunakan pada Baris 15, adalah kata yang dicadangkan di C ++, jadi jika Anda ingin menjadi dua bahasa, ubah nama variabel menjadi new_struct atau menjadi sesuatu selain kata baru.

Saat struktur pertama terisi, Baris 30 menugaskan pointer NULL ke elemen berikutnya.Nilai NULL tersebut menutupi akhir daftar yang terhubung.

Baris 32 membuat struktur, menempatkan alamatnya di variabel penunjuk baru. Alamat disimpan dalam struktur pertama di Baris 38. Begitulah lokasi struktur kedua dipertahankan.

Baris 40 sampai 43 mengisi informasi untuk penunjuk kedua, tetapkan nilai NULL ke elemen berikutnya pada Baris 43.

Keterkaitan terjadi saat isi struktur ditampilkan. Baris 48 menangkap alamat struktur pertama. Kemudian Line 54 menangkap alamat struktur berikutnya dari dalam struktur pertama.

Latihan 1 : Ketik kode sumber dari A Primitive Linked-List Example ke editor Anda. Meski sudah lama, ketik saja karena Anda perlu mengeditnya lagi nanti (jika Anda tidak terbiasa dengan itu sekarang). Bangun dan jalankan

Tidak seperti array, struktur dalam linked list tidak diberi nomor. Sebagai gantinya, masing-masing struktur dihubungkan ke struktur berikutnya dalam daftar. Selama Anda mengetahui alamat struktur pertama, Anda dapat mengerjakan daftar sampai akhir, yang ditandai dengan NULL.

Contoh Daftar Linked Primitif menunjukkan beberapa kode sumber ceroboh dengan banyak kode berulang. Bila Anda melihat banyak pernyataan seperti ini dalam kode Anda, Anda harus segera memikirkan "fungsi. "

CONTOH LEBIH BAIK LINKED-LIST

#include #include #include #define ITEMS 5 struct stock {char symbol [5]; kuantitas int; harga mengapung; struct stock * next;}; struct stock * pertama; saham struct * saat ini; saham struct * baru; struct stock * make_structure (void); void fill_structure (struct stock * a, int c); void show_structure (struct stock * a); int main () {int x; fill_structure (current, x + 1);} current-> next = NULL; / * Tampilkan database * / puts ("Portofolio Investasi"); printf ("SymboltSharestPricetValuen "); current = first; while (current) {show_structure (current); current = current-> next;} return (0);} struct stock * make_structure (void) {struct stock * a; a = (struct stock *) malloc (sizeof (struct stock)); if (a == NULL) {puts ("Beberapa jenis malloc () error"); exit (1);} return (a);} void fill_structure (struct stock * a, int c) {printf ("Item #% d /% d: n", c, ITEMS; printf ("Simbol Stok:"); scanf ("% s", simbol a->); printf ("Nomor dari saham: "); scanf ("% d ", & a-> quantity); printf (" harga saham: "); scanf ("% f ", & a-> price);} void show_structure (struct stock * a) {printf ("% - 6st% 5dt%. 2ft%. 2fn", a-> simbol, a-> quantity, a-> price, a-> quantity * a-> price;;}

daftar yang paling banyak ditautkan dibuat seperti ditunjukkan pada Contoh Linked List yang Lebih Baik. Kuncinya adalah menggunakan tiga variabel struktur, yang ditunjukkan pada Baris 13 sampai 15:

  • pertama selalu berisi alamat dari struktur pertama dalam daftar. Selalu.

  • saat ini berisi alamat struktur yang sedang dikerjakan, diisi dengan data, atau ditampilkan.

  • baru adalah alamat dari struktur baru yang dibuat dengan menggunakan fungsi malloc ().

Baris 7 menyatakan struktur stok sebagai global. Dengan begitu, bisa diakses dari berbagai fungsi.

Lingkaran antara Baris 25 dan 39 menciptakan struktur baru, menghubungkan keduanya.Struktur awal sangat istimewa, jadi alamatnya tersimpan di Baris 30. Jika tidak, struktur baru dialokasikan, berkat fungsi make_structure ().

Di Baris 35, struktur sebelumnya diperbarui; nilai arus tidak berubah sampai Garis 36. Sebelum itu terjadi, penunjuk pada struktur saat ini diperbarui dengan alamat struktur berikutnya, baru.

Pada Baris 40, akhir dari linked list ditandai dengan mengatur ulang pointer baru dalam struktur terakhir ke sebuah NULL.

Loop sementara di Baris 46 menampilkan semua struktur dalam linked list. Kondisi loop adalah nilai dari pointer saat ini. Saat NULL ditemui, loop berhenti.

Sisa kode yang ditunjukkan dalam A Better Linked-List Example terdiri dari fungsi yang cukup jelas.

Latihan 2 : Salin kode dari A Better Linked-List Example ke editor. Bangun dan jalankan

Catatlah pernyataan scanf () di fungsi fill_structure (). Ingat bahwa -> adalah notasi "peeker" untuk sebuah pointer. Untuk mendapatkan alamat, Anda harus awalan variabel dengan fungsi & di scanf ().

Cara membuat Linked List di Pemrograman C - dummies

Pilihan Editor

10 Outlook 2013 Jalan pintas layak diambil - dummies

10 Outlook 2013 Jalan pintas layak diambil - dummies

Meskipun komputer dan program perangkat lunak seperti Outlook 2013 seharusnya menyelamatkan Anda waktu, beberapa hari ini sepertinya tidak menjadi masalah. Tombol juggling, kunci, dan Pita sepertinya bisa memakan waktu seharian. Berikut adalah beberapa cara pintas yang bisa menghemat waktu dan ketegangan Anda.

Cara menambahkan kontak di Outlook 2013 - dummies

Cara menambahkan kontak di Outlook 2013 - dummies

Bila bukan apa yang Anda ketahui tapi siapa yang Anda kenal, Anda butuh alat yang bagus untuk mencatat siapa siapa. Outlook 2013 adalah alat yang hebat untuk mengelola nama dan alamat Anda, dan ini mudah digunakan sebagai Buku Hitam Kecil Anda.

Cara menambahkan foto ke kontak Outlook 2013 - dummies

Cara menambahkan foto ke kontak Outlook 2013 - dummies

Anda dapat menyertakan gambar dengan kontak informasi yang Anda kumpulkan di Outlook 2013, dan tidak hanya untuk hiasan. Kini setelah banyak ponsel dan perangkat seluler lainnya melakukan sinkronisasi dengan daftar Kontak Outlook, Anda dapat membuat gambar seseorang muncul di layar ponsel Anda setiap kali dia menelepon atau mengirim SMS. Foto-foto itu ...

Pilihan Editor

Cara Mengatasi Masalah Lingkaran di lingkaran PSAT / NMSQT - dummies

Cara Mengatasi Masalah Lingkaran di lingkaran PSAT / NMSQT - dummies

Ada di mana-mana, terutama di PSAT / NMSQT. Bukan kebetulan bahasa Inggris berisi begitu banyak rujukan ke lingkaran: lingkaran teman, air mengitari cerat, lingkaran penuh, dan sebagainya. Ketika Anda menekan lingkaran pertanyaan pada PSAT / NMSQT, ingat fakta-fakta ini: Jari-jari adalah garis lurus dari pusat lingkaran ...

Meningkatkan Motivasi Anda untuk Dilakukan dengan baik di MAT - dummies

Meningkatkan Motivasi Anda untuk Dilakukan dengan baik di MAT - dummies

Uji Analogi Miller (Miller Analogies Test - MAT) adalah tes standar yang biasanya digunakan untuk penerimaan sekolah pascasarjana, jadi Anda sudah termotivasi untuk melakukannya dengan baik. Sebagai belajar untuk MAT menjadi sulit, memakan waktu, membosankan, atau hanya membosankan, akan sulit untuk mempertahankan motivasi Anda untuk melanjutkan pencarian Anda. Jadi, bagaimana Anda bisa meningkatkan level Anda saat ini?

Pilihan Editor

Bagaimana memberi nama file HTML - dummies

Bagaimana memberi nama file HTML - dummies

Anda tidak dapat membuka kode Anda di browser sampai Anda menyimpan itu dengan perpanjangan nama file. html (atau .htm). Ingat bahwa judul halaman ditampilkan di bilah judul browser atau bilah tab. Judul benar-benar bagaimana halaman Anda "diidentifikasi" ke seluruh dunia. Nama file halaman, meskipun, lebih merupakan bagian dalam ...

Bagaimana Mencocokkan Email Pemasaran dengan Brand Anda - dummies

Bagaimana Mencocokkan Email Pemasaran dengan Brand Anda - dummies

Branding e-mail pemasaran Anda membantu audiens Anda untuk segera mengenali dan membedakan e-mail Anda dari e-mail asing yang mereka terima. Menjaga pencitraan e-mail Anda konsisten dari waktu ke waktu memungkinkan penerima Anda mengenal Anda dan e-mail karena mereka menerima beberapa e-mail dari Anda. Semua komunikasi bisnis Anda harus mengandung elemen pencitraan merek yang konsisten, dan ...