Rumah Kewangan Peribadi Cara Membuat Senarai Terkait dalam Pemrograman C - dummies

Cara Membuat Senarai Terkait dalam Pemrograman C - dummies

Video: TUTORIAL LOCK SATELIT ABS 2 C BAND (ADA PENJELASAN MULTISTREAM MYFREEVIEW MALAYSIA) 2025

Video: TUTORIAL LOCK SATELIT ABS 2 C BAND (ADA PENJELASAN MULTISTREAM MYFREEVIEW MALAYSIA) 2025
Anonim

Dalam pengaturcaraan C, jika anda ingin menambahkan struktur kedua untuk kod yang telah anda buat, buat senarai terik - satu siri struktur yang mengandungi petunjuk antara satu sama lain. Bersama-sama dengan data asas dalam struktur, struktur mengandungi penunjuk, yang mengandungi alamat struktur seterusnya dalam senarai.

Dengan beberapa juggling nama-nama penunjuk yang pintar, ditambah dengan NULL untuk menutup akhir senarai, anda mungkin berakhir dengan sesuatu yang serupa dengan kod sumber dalam Contoh Senarai Terkait Primitif.

CONTOH SENARAI BERDASARKAN PREDIKSI

#include #include #include int main () {struct stock {char symbol [5]; kuantiti int; harga terapung; saham stok * seterusnya;}; saham stok * pertama; saham struktur * semasa; saham stok * baru; / * Buat struktur dalam memori * / first = (stok struct *) malloc (sizeof (stok struct)); jika (pertama == NULL) {meletakkan ("Sebilangan jenis malloc () ralat"); keluar (1);} / * Berikan data struktur * / semasa = pertama; strcpy (semasa-> simbol, "GOOG"); semasa-> kuantiti = 100; semasa-> harga = 801. 19; semasa-> seterusnya = NULL; new = (struct stock *) malloc (sizeof (stok struct)); jika (baru == NULL) {puts ("Kesilapan malloc lain"); keluar (1);} semasa-> seterusnya = baru; semasa = baru; strcpy (semasa-> simbol, "MSFT"); semasa-> kuantiti = 100; semasa-> harga = 28. 77; semasa-> seterusnya = NULL; / * Paparan pangkalan data * / meletakkan ("Portfolio Pelaburan"); printf ("SymboltSharestPricetValuen"); semasa = pertama; printf ("% - 6st% 5dt%.2ft%. 2fn", semasa-> simbol, semasa-> kuantiti, semasa-> harga, semasa-> kuantiti * semasa-> harga); semasa = semasa-> seterusnya; printf ("% - 6st% 5dt%.2ft%. 2fn", semasa-> simbol, semasa-> kuantiti, semasa-> harga, semasa-> kuantiti * semasa-> harga); kembali (0);}

Kod sumber ini agak panjang, tetapi ia hanya mewujudkan struktur kedua, yang dikaitkan dengan yang pertama. Jangan biarkan panjang kod sumber menakut-nakutkan anda.

Talian 13 hingga 15 mengisytiharkan tiga petunjuk struktur standard yang diperlukan untuk tarian senarai berkaitan. Secara tradisinya, mereka dinamakan pertama, semasa, dan baru. Mereka memainkan keempat ahli dalam struktur, seterusnya, yang terdapat di Baris 11, yang merupakan penunjuk struktur.

Jangan gunakan typedef untuk mentakrifkan pembolehubah struktur baru apabila membuat senarai yang dipautkan. Contoh Senarai Terkait Primitif tidak menggunakan typedef, jadi itu bukan masalah dengan kod, tetapi banyak pengaturcara C menggunakan typedef dengan struktur. Berhati-hati!

Nama pembolehubah baru, yang digunakan dalam Talian 15, adalah perkataan reserved dalam C ++, jadi jika anda ingin menjadi dwibahasa, tukar nama pemboleh ubah kepada new_struct atau sesuatu yang lain daripada perkataan yang baru.

Apabila struktur pertama diisi, Line 30 menyerahkan penunjuk NULL ke elemen seterusnya.Bahawa nilai NULL tutup pada akhir senarai yang dipautkan.

Baris 32 mencipta struktur, meletakkan alamatnya dalam pembolehubah penunjuk baru. Alamat tersebut disimpan dalam struktur pertama dalam Baris 38. Itulah bagaimana lokasi struktur kedua disimpan.

Lines 40 hingga 43 mengisi maklumat untuk penuding kedua, memberikan nilai NULL ke elemen seterusnya di Baris 43.

Pautan akan berlaku apabila kandungan struktur dipaparkan. Talian 48 menangkap alamat struktur pertama. Kemudian Talian 54 menangkap alamat struktur seterusnya dari dalam struktur pertama.

Latihan 1 : Taip kod sumber daripada Contoh Senarai Terkait Primitif ke dalam editor anda. Walaupun sudah lama, taipkannya kerana anda perlu mengeditnya kemudian (jika anda tidak terbiasa dengannya sekarang). Bina dan lari.

Tidak seperti array, struktur dalam senarai terkaitan tidak bernombor. Sebaliknya, setiap struktur dikaitkan dengan struktur seterusnya dalam senarai. Selagi anda tahu alamat struktur pertama, anda boleh bekerja melalui senarai hingga akhir, yang ditandakan oleh NULL.

Contoh Senarai Terkait Primitif menunjukkan kod sumber ceroboh dengan banyak kod berulang. Apabila anda melihat berbilang pernyataan seperti ini dalam kod anda, anda harus segera berfikir "fungsi. "

CONTOH SENARAI BERJALAN BERSAMA

#include #include #include #define ITEMS 5 struct stock {char symbol [5]; kuantiti int; harga terapung; saham stok * seterusnya;}; saham stok * pertama; saham struktur * semasa; saham stok * baru; struktur saham * make_structure (tidak sah); void fill_structure (struct stock * a, int c); void show_structure (struct stock * a); int main () {int x; untuk (x = 0; xnext = new; current = new;} fill_structure (semasa, x + 1);} current-> next = NULL; }} semasa = pertama; sementara {semasa} {show_structure (sekarang); current = current-> next;} return (0);}) malloc (sizeof (stok struktur)); jika (a == NULL) {meletakkan ("Sesetengah jenis kesilapan malloc"); exit (1);}, integer c) {printf ("Item #% d /% d: n", c, ITEMS); printf ("Simbol Saham:"); scanf ("% s", a-> saham "); scanf ("% d ", & a-> kuantiti); printf (" harga saham: "); scanf ("% f " {printf ("% - 6st% 5dt%.2ft%.2fn", a-> simbol, a-> kuantiti, a-> harga, a-> kuantiti * a-> harga);}

dicipta seperti yang ditunjukkan dalam Contoh Senarai Yang Lebih Baik. Kekuncinya ialah menggunakan tiga pembolehubah struktur yang ditunjukkan dalam Talian 13 hingga 15:

  • pertama kali selalu mengandungi alamat daripada struktur pertama dalam senarai. Sentiasa.

  • semasa mengandungi alamat struktur yang sedang dijalankan, diisi dengan data, atau dipaparkan.

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

Talian 7 mengisytiharkan struktur saham sebagai global. Dengan cara itu, ia boleh diakses dari pelbagai fungsi.

Gelung di antara Talian 25 dan 39 mencipta struktur baru, menghubungkannya bersama-sama.Struktur awal adalah khas, jadi alamatnya disimpan dalam Talian 30. Jika tidak, satu struktur baru diperuntukkan, terima kasih kepada fungsi make_structure ().

Dalam Talian 35, struktur sebelumnya dikemas kini; nilai semasa tidak berubah sehingga Line 36. Sebelum itu berlaku, penunjuk dalam struktur semasa dikemas kini dengan alamat struktur seterusnya, baru.

Pada Talian 40, akhir senarai yang dikaitkan ditandakan dengan menetapkan semula penunjuk baru dalam struktur terakhir kepada NULL.

Gelung sementara pada Talian 46 memaparkan semua struktur dalam senarai yang dipautkan. Kondisi gelung adalah nilai penunjuk semasa. Apabila NULL ditemui, gelung berhenti.

Selebihnya kod yang dipaparkan dalam Contoh Senarai Terkait Lebih Baik terdiri daripada fungsi yang cukup jelas.

Latihan 2 : Salin kod daripada Contoh Senarai Terlihat yang Lebih Baik ke dalam editor. Bina dan lari.

Ambil perhatian pernyataan scanf () dalam fungsi fill_structure (). Ingat bahawa -> ialah notasi "peeker" untuk penuding. Untuk mendapatkan alamat, anda mesti mendayakan pemboleh ubah dengan fungsi & scanf ().

Cara Membuat Senarai Terkait dalam Pemrograman C - dummies

Pilihan Editor

5 Perkara yang boleh dilakukan oleh GoPro Camera - dummies

5 Perkara yang boleh dilakukan oleh GoPro Camera - dummies

Apa yang boleh dilakukan oleh GoPro? Inilah soalan yang lebih relevan: Apa yang anda mahu lakukan? Meminta soalan ini lebih seperti menanyakan diri anda tentang keinginan dan hasrat anda sendiri untuk rakaman video yang unik. Apabila anda menentukan apa yang anda ingin tangkap, semua yang anda perlu lakukan ialah menyambungkan kamera ke gunung yang sesuai ...

Pengaturan & Pintasan dSLR Untuk Menipu Cheat Sheet - dummies

Pengaturan & Pintasan dSLR Untuk Menipu Cheat Sheet - dummies

Anda mempunyai refleks kanta tunggal digital yang besar (dSLR ) kamera dan mahu menangkap beberapa gambar indah masa-masa hidup anda. Untuk sepenuhnya menguasai dSLR anda dan membuat gambar yang menarik, anda mesti menceburkan diri ke dunia baru yang berani yang melibatkan membuat keputusan tentang mod penangkapan. Mengetahui panjang fokus apa yang digunakan dalam ...

Pilihan Editor

Bagaimana Menggunakan Lapisan Masker Gradient dan Brush Masker di Photoshop CS6 - lapisan masker

Bagaimana Menggunakan Lapisan Masker Gradient dan Brush Masker di Photoshop CS6 - lapisan masker

Lapisan lapisan di Photoshop CS6 membolehkan anda secara beransur-ansur berus dalam ketelusan dan kelegapan pada asas pixel selektif. Dua alat pelapis lapisan - Alat Gradien dan Brush - lebih kerap digunakan berbanding yang lain: Alat Gradien: Menetapkan alat ini kepada kecerunan linear hitam ke putih atau putih ke ...

Cara Menggunakan Kuler untuk Cari dan Kongsi Tema Warna di Photoshop CS6 - dummies

Cara Menggunakan Kuler untuk Cari dan Kongsi Tema Warna di Photoshop CS6 - dummies

Sumber yang tersedia untuk Adobe Photoshop Creative Suite 6 adalah luas. Kuler adalah komuniti dalam talian yang menyediakan tema warna untuk anda menyemak imbas, memuat turun, membuat, mengedit, dan memuat naik untuk berkongsi dengan orang lain. Gunakan tema ini apabila membuat projek cetak grafik atau laman web. Apa yang anda perlukan ialah sambungan Internet dan Adobe ID. Di sini ...

Cara Menggunakan Kata Kunci untuk Photoshop CS6 Files dalam Bridge - dummies

Cara Menggunakan Kata Kunci untuk Photoshop CS6 Files dalam Bridge - dummies

Kata kunci adalah label deskriptif yang anda lampirkan ke fail di Bridge. Mereka membantu untuk mengkategorikan imej Photoshop CS6 anda, membolehkan anda lebih cekap dan cepat mencari fail yang anda inginkan. Berikut adalah downside untuk membuat dan menggunakan kata kunci: Untuk membuat kata kunci baru (folder kategori yang mengandungi kata kunci): Klik ikon tanda tambah (+) ...

Pilihan Editor

Dengan Touch dengan Nota Reka bentuk - dummies

Dengan Touch dengan Nota Reka bentuk - dummies

Nota reka bentuk adalah sesuai untuk berkomunikasi dengan pemaju lain yang bekerja pada Laman web, tetapi tidak dalam jarak menjerit. Ciri Dreamweaver ini berfungsi seperti tag komen (kod HTML yang membolehkan anda memasukkan teks dalam halaman yang tidak akan dipaparkan dalam penyemak imbas) tetapi dengan privasi lebih banyak. Ramai pemaju menggunakan ...

Memenuhi Dreamweaver CS3 Common Insert Bar - dummies

Memenuhi Dreamweaver CS3 Common Insert Bar - dummies

Jangan berfikir bahawa toolbar Dreamweaver CS3 Common Insert biasa dan biasa. Ia hanya dipanggil "umum" kerana ia menawarkan perintah memasukkan yang paling kerap digunakan kerana ia adalah yang paling berguna. Dengan bilah alat yang ditunjukkan di sini, anda boleh memasukkan segala-galanya dari pautan e-mel kepada tarikh kepada mana-mana media yang ingin anda letakkan ...

Gambaran Keseluruhan Alignment Imej dalam Adobe CS5 Dreamweaver - dummies

Gambaran Keseluruhan Alignment Imej dalam Adobe CS5 Dreamweaver - dummies

Penjajaran imej dan teks bersebelahan mereka di Adobe Suite Creative 5 (Adobe CS5) Dreamweaver adalah mudah, tetapi pilihan yang ada mungkin membuat kelihatan terlalu rumit. Imej dan teks bersebelahan mereka duduk pada garis dasar yang sama sebagai lalai, memaksa teks berjalan dalam satu baris ke kanan imej. Untuk ...