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) 2024

Video: TUTORIAL LOCK SATELIT ABS 2 C BAND (ADA PENJELASAN MULTISTREAM MYFREEVIEW MALAYSIA) 2024
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

Melindungi Metrik Media Sosial anda dengan Alat Cadangan - dummies

Melindungi Metrik Media Sosial anda dengan Alat Cadangan - dummies

Jika anda telah memulakan jejak sosial metrik media dan menikmati kurniaan data yang kini dapat dilihat, dihidupkan, dan digunakan, anda mungkin tertanya-tanya apa yang mungkin menyebabkan kemurungan! Mudah: kehilangan data. Katakanlah bahawa anda mempunyai masalah tapak atau entah bagaimana kehilangan akses ke tapak atau data anda. Adakah anda mempunyai sandaran anda ...

Laman web baru? Menarik Tumpuan Media Sosial Lalu Lintas dan Meningkat - dummies

Laman web baru? Menarik Tumpuan Media Sosial Lalu Lintas dan Meningkat - dummies

Mana-mana kempen baru, laman web, akaun Twitter, halaman Facebook, atau item lain yang anda ingin ukur dengan metrik media sosial bermula pada sifar. Nombor ini boleh membuat anda merasa seperti anda bercakap dengan tidak sah, bercakap dengan diri anda atau anda tersembunyi dari pandangan. Perasaan ini boleh membawa kepada pengasingan secara keseluruhan ...

Meracuni Google Spider - dummies

Meracuni Google Spider - dummies

Anda sentiasa dapat mencari orang yang ingin menyimpang dari lurus dan sempit. Ya, mereka adalah orang bodoh yang terlibat dalam taktik pengoptimuman berisiko yang bertujuan untuk menggerakkan PageRank secara artifisial, memanipulasi pesanan halaman hasil carian di Google, dan mendapatkan kelebihan yang tidak adil dalam indeks. Google, dengan reputasi yang luar biasa untuk melindungi, ...

Pilihan Editor

Mengukur Pengunjung Lama Menginap di Laman Web Anda - dummies

Mengukur Pengunjung Lama Menginap di Laman Web Anda - dummies

Di laman web anda memberikan wawasan yang penting. Anda boleh memikirkan sama ada pengunjung sedang melihat cepat, kemudian pergi, atau sama ada mereka bertahan lebih lama dan sebenarnya membaca bahan dalam talian anda dengan tujuan untuk mengambil tindakan. Jika majoriti pelawat laman web anda tidak ...

Pemasaran web: Cara Menilai Layouts dengan Peta Haba - dummies

Pemasaran web: Cara Menilai Layouts dengan Peta Haba - dummies

Laman web perniagaan sangat mirip dengan merancang kedai dengan pemasaran produk dalam fikiran. Malah, laman web anda benar-benar adalah kedai - kedai maya di Internet. Rangkaian kedai runcit telah menghabiskan berjuta-juta dolar dalam penyelidikan pasaran, menonton dan mendokumentasikan bagaimana pembeli memasuki kedai, belok kanan atau kiri, dan ...

Analitik web Untuk Menipu Cheat Sheet - dummies

Analitik web Untuk Menipu Cheat Sheet - dummies

Melakukan analisis laman web tidak perlu meletihkan dan intensif masa. Anda boleh meringkaskan prestasi keseluruhan laman web anda dengan cepat - jika anda tahu apa yang perlu dicari. Alat analisis web percuma dan kos rendah boleh membantu anda mengukur kejayaan laman web anda, dan anda boleh menjana perujuk tapak dengan pelbagai cara yang tidak mungkin ...

Pilihan Editor

Cara Memaksimumkan Ruang pada Laman Web - dummies

Cara Memaksimumkan Ruang pada Laman Web - dummies

Terlalu terhad, anda boleh membuat penggunaan kreatif beberapa teknologi di luar sana untuk memaksimumkan antara muka anda. Untuk setiap teknik berikut yang diterangkan, terdapat banyak laman web yang menawarkan sampel kod, forum, dan sumber untuk membantu anda memulakan. Accordions. Antara muka akordion membolehkan ...

Cara Mendapatkan Corak CSS3 Online - dummies

Cara Mendapatkan Corak CSS3 Online - dummies

Mencipta kesan mudah untuk laman CSS3 menggunakan gradien mudah . Walau bagaimanapun, mewujudkan sesuatu yang benar-benar hebat memerlukan masa dan keupayaan artistik. Kebanyakan pemaju benar-benar tidak mempunyai masa atau kemahiran yang diperlukan untuk mencipta sesuatu yang mempesonakan menggunakan CSS3 sahaja (atau CSS3 digabungkan dengan grafik) - di sinilah pereka bermain. Ramai pereka yang membolehkan anda ...

Bagaimana Mengoptimumkan Aplikasi CSS3 dengan Modernizr - dummies

Bagaimana Mengoptimumkan Aplikasi CSS3 dengan Modernizr - dummies

Terdapat banyak pelayar dan versi pelayar yang berbeza gunakan hari ini. Tidak semua daripada mereka adalah optimum untuk CSS3. Inilah tempat Modernizr dimainkan. Pemajunya menyebutnya "perpustakaan JavaScript yang mengesan ciri HTML5 dan CSS3 dalam pelayar pengguna. "Anda menggunakan Modernizr untuk melaksanakan tugas secara pilihan dan memasukkan ciri aplikasi berdasarkan ...