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

Bertahan dalam Zombie Sieges di Minecraft - dummies

Bertahan dalam Zombie Sieges di Minecraft - dummies

Bermasalah dengan zombie yang menyerang desa Anda pada malam hari di Minecraft? Pelajari bagaimana untuk membela diri, menyembuhkan penduduk desa zombie, dan pulihkan dunia Anda!

Zaman Batu di Minecraft - dummies

Zaman Batu di Minecraft - dummies

Tonggak penting dalam mode Minecraft Survival, dan yang dicapai oleh beberapa pemain di Hari pertama, mencapai Zaman Batu. Setelah Anda membuat pickax kayu dan Anda bisa menemukan gua atau menggali lubang, item dalam tabel berikut tersedia untuk Anda. Sebagian besar bahan berbasis batu lebih padat dari yang lain ...

Zaman Looting di Minecraft - dummies

Zaman Looting di Minecraft - dummies

Anda mencapai Usia Looting di Minecraft di awal permainan - kadang-kadang, bahkan paralel untuk mencapai Era Kayu. Anda mulai dengan membunuh musuh untuk menjarah, dan dengan menggunakan jarahan untuk memperbaiki repertoar kerajinan Anda. Lebih banyak item kemudian tersedia bagi Anda, seperti tercantum dalam tabel. Semua alat meningkatkan jumlah ...

Pilihan Editor

Infografis tepat waktu: Berbagi Breaking News - dummies

Infografis tepat waktu: Berbagi Breaking News - dummies

Walaupun infografik Anda tidak mungkin menjadi satu-satunya sumber berita, Ini bisa membantu pemahaman pembaca akan sebuah acara berita. Misalnya, banyak orang belajar di Twitter pada bulan Oktober, 2011 bahwa pendiri Apple Steve Jobs telah meninggal dunia. Infografis tidak akan menjadi orang pertama yang mendengarnya. Tapi orang-orang ...

Pilihan Editor

GED Contoh Pertanyaan: Pertanyaan Ilmu Fisik - dummies

GED Contoh Pertanyaan: Pertanyaan Ilmu Fisik - dummies

Ketika Anda mencapai bagian Sains GED, Anda akan diharapkan memiliki pengetahuan umum di semua cabang Ilmu Pengetahuan, termasuk Ilmu Fisika. Berikut adalah contoh jenis pertanyaan yang mungkin Anda hadapi pada hari ujian. Kecepatan dan Kecepatan Ada perbedaan antara kecepatan dan kecepatan, meskipun terkadang Anda ...

Latihan GED RLA: Reading Comprehension - dummies

Latihan GED RLA: Reading Comprehension - dummies

Cara terbaik untuk mempersiapkan bagian pemahaman bacaan GED Tes RLA adalah melakukan sebanyak mungkin pertanyaan latihan. Simak sampel untuk melihat apa yang akan Anda hadapi pada hari ujian. Contoh Pertanyaan Pertanyaan 1-6 mengacu pada bagian berikut. Fasilitas untuk Akses ke Perusahaan Kreatif (FACE) Awalnya didirikan ...

GED Penalaran melalui Latihan Keterampilan Membaca Bahasa Seni - dummies

GED Penalaran melalui Latihan Keterampilan Membaca Bahasa Seni - dummies

Komponen bacaan Penalaran meskipun Bahasa Seni Bagian pada GED terdiri dari kutipan dari fiksi dan nonfiksi. Setiap kutipan diikuti oleh beberapa item pilihan berdasarkan bahan bacaan. Untuk pertanyaan di bagian ini, pilih satu jawaban terbaik untuk setiap pertanyaan. Bekerja dengan hati-hati, tapi jangan terlalu banyak menghabiskan waktu ...