Rumah pangkalan data tutorial mysql 05.线性表(四)链式存储结构.静态链表

05.线性表(四)链式存储结构.静态链表

Jun 07, 2016 pm 04:12 PM
penyimpanan Linear struktur senarai terpaut statik

链式存储结构.静态链表 一、静态链表 1.静态链表存储结构 单链表是通过指针实现的,但是我们也可以通过数组来代替指针描述单链表,即静态链表。如何实现静态链表?构造数组的元素由两个数据域组成:data和cur,即数组的每个下标都对应一个data和一个cur。数据

链式存储结构.静态链表 一、静态链表 1.静态链表存储结构 单链表是通过指针实现的,但是我们也可以通过数组来代替指针描述单链表,即静态链表。如何实现静态链表?构造数组的元素由两个数据域组成:data和cur,即数组的每个下标都对应一个data和一个cur。 数据域data:用来存放数据元素,即要处理的数据; 游标cur:存放该元素的后继在数组中的下标,相当于单链表中的next指针; 为了方便插入数据,我们通常会把数组建立得大一些,以便有一些空闲空间而不致于出现溢出情况。 线性表的静态链表存储结构: #define MAXSIZE 1000 //假设链表的长度为1000(个元素) typedef struct { ElemType data; //数据域,int类型 int cur; //游标(Cursor),为0时表示无指向 }Component,StaticLinkList(MAXSIZE); 2.备用链表 由于数组的第一个和最后一个元素作为特殊元素处理,不存数据,因此我们把未使用的数组元素称为备用链表。 因此,我们规定: (1)数组第一个元素(即下标为0的元素)的游标cur存放第【本文来自鸿网互联 (http://www.68idc.cn)】一个空闲空间元素的下标(备用链表的第一个元素); (2)数组最后一个元素的游标cur存放第一个有数值的元素的下标(相当于单链表中的头结点作用)。当整个链表为空时则最后一个元素的游标cur为0。 (3)链表的最后一个有值元素的cur为0 \
\

升华笔记:如何将一维数组list中各分量链成一个备用链表? typedef int Status Status InitList(StaticLinkList list) { int i; //i为数组下标,MAXSIZE为链表长度 for(i=0;i 二、静态链表的插入/删除操作喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPgoKCgoKCgogICAgvrLMrMG0se21xLLlyOu6zcm+s/2y2df3o6zX7rnYvPzKx9KqveK+9sjnus7Tw76yzKzEo8Titq/MrMG0se294bm5tcS05rSiv9W85LXEt9bF5KOs0OjSqsqxyerH66Oszt7Tw8qxys23xaGjCjxzdHJvbmc+MS6+ssyswbSx7bXEsuXI67LZ1/c8L3N0cm9uZz4KPHN0cm9uZz4oMSnL47eoy7zCtzwvc3Ryb25nPgogICAgzqrBy7Hmw/fK/dfp1tDExNCpt9bBv860sbvKudPDo6y94r72tcSw7Leoyse9q8v509DOpbGzyrnTw7n9tcS8sNLRsbvJvrP9tcS31sG/08PTzrHqY3VywbSzydK7uPaxuNPDtcTBtLHtKLy0v9XBtLHtKaOsw7+1sb340NCy5cjryrGjrLHjv8nS1LTTsbjTw8G0se3Jz8ihtcO12tK7uPa94bXjo6i8tM60sbvKudPDtcS12tK7uPa94bXjo6nX7s6qtP2y5cjr0MK94bXjoaMKyrXP1rvxyKG/1c/Qt9bBv8/CsepNYWxsb2NfU0xMuq/K/cvjt6ijugphLrvxyKHK/dfptdrSu7j21KrL2LXE086x6mN1cj1po6zG5LTmt8W1xMrHsbjTw8G0se21xLXa0ru49r/Vz9C94bXjOwpiLr2ryv3X6bXaabj21KrL2LXE086x6mN1cj1pJiM0MzsxuLMmIzIwNTQwO7j4zbfWuNXrCmMut7W72LG7yrnTw7XEyv3X6dSqy9jPwrHqCjxibG9ja3F1b3RlPgogaW50IGk9bGlzdFswXS5jdXI7ICAgICAgICAgLy/I52k9bGlzdFswXS5jdXI9NwogbGlzdFswXS5jdXI9bGlzdFtpXS5jdXI7IC8vzbfWuNXrbGlzdFswXS5jdXI9bGlzdFs3XS5jdXI9OAogcmV0dXJuIGk7CjwvYmxvY2txdW90ZT4KPHN0cm9uZz4oMinUtMLryrXP1jwvc3Ryb25nPgovKjEuyPSxuNPDv9W85MG0se3Oqr/Vo6zU8re1u9i31sXktcS94bXjz8Kx6qOst/HU8re1u9gwKi8KaW50IE1hbGxvY19TTEwoU3RhdGljTGlua0xpc3QgbGlzdCkKewogICAgaW50IGk9bGlzdFswXS5jdXI7ICAgICAgICAvL7vxyKGxuNPDwbSx7bXEtdrSu7j2veG148/CseootbHHsMr91+m12tK7uPbUqsvYtcRjdXK05rSitdrSu7j2sbjTw7/Vz9C1xM/CseopCiAgICBpZihsaXN0WzBdLmN1cikgICAgICAgICAgICAvL8jnuftsaXN0WzBdLmN1ciE9MKOs1PLLtcP3yv3X6bqs09C3x7/V1KrL2AogICAgewogICAgICAgICAgICBsaXN0WzBdLmN1cj1saXN0W2ldLmN1cjsgICAgLy/TydPa0qrEw7P20ru49rG408PBtLHttcS94bXjyrnTw6OsztLDx9Do0qq9q8r91+m12tK7uPbUqsvYtcRjdXK05rfFz8LSu7j2v9Wz9sC0tcTUqsvY1/exuNPDCiAgICB9CiAgICByZXR1cm4gaTsvL7e1u9ixu8q508O1xM/CseoKfTxicj4KCgoKLy/XosrNo7q82cjnz8jHsGxpc3RbMF0uY3VyPTcoyv3X6c/CseomIzIwNTQwOykstbHPwrHqzqo3tcS31sG/KMr91+nUqsvYKde8sbixu8q508PBy6Osvs21w9PQvdPM5tXfo6zL+dLUsNG31sG/NyhsaXN0W2ldLmN1cqOsxuTW0Gk9Nym1xGN1ciYjMjA1NDA7PTijrLizJiMyMDU0MDu4+M231KrL2KOobGlzdFswXS5jdXKjqaOs1q66877Nv8nS1LzM0Pi31sXk0MK1xL/Vz9C31sG/oaMvLwoKCi8qMi7U2kzW0LXaabj21KrL2Naux7Cy5cjr0MK1xMr9vt3UqsvYZSovCnR5cGVkZWYgaW50IFN0YXR1cwp0eXBlZGVmIGludCBFbGVtVHlwZQpTdGF0dXMgTGlzdEluc2VydChTdGF0aWNMaW5rTGlzdCBMLGludCBpLEVsZW1UeXBlIGUpCnsKICAgIGludCBqLGssbTsKICAgIGs9TUFYX1NJWkUtMTsgICAgLy/XotLio7prytfPyMrH1+6689K7uPbUqsvYtcTPwrHqICAgIAogICAgaWYoaiZsdDsxIA=="| j>ListLength(L)+1) return ERROR; j=Malloc_SLL(L); //a.获得空闲分量的下标 if(j) { L[j].data=e; //b.将数据赋值给此分量的data for(m=1;m
2.静态链表的删除操作 源码实现 /*1.将下标为k的空闲结点回收到备用链表*/ void Free_SSL(StaticLinkList space,int k) { space[k].cur=space[0].cur; //将数据的第一个元素cur(其值为备用链表的第一个空闲元素下标),赋值给要删除分量的cur space[0].cur=k; //把要删除的分量下标赋值给第一个元素的cur } /*2.删除在L中第i个数据元素e*/ typedef int Status Status ListDelete(StaticLinkList L,int i) { int i,k; if(iListLength(L)) return ERROR; k=MAXSIZE-1; //存储链表最后一个元素的下标 for(j=1;j 三、静态链表的优缺点 1.优点 在插入和删除操作时只需要修改游标,不需要移动元素,从而改进了在顺序存储结构中的插入和删除操作需要移动大量元素的缺点; 2.缺点 (1)没有解决连续存储分配带来的表长度难以确定的问题; (2)失去了顺序存储结构随机存取的特性;

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Huawei akan melancarkan produk storan MED yang inovatif tahun depan: kapasiti rak melebihi 10 PB dan penggunaan kuasa kurang daripada 2 kW Huawei akan melancarkan produk storan MED yang inovatif tahun depan: kapasiti rak melebihi 10 PB dan penggunaan kuasa kurang daripada 2 kW Mar 07, 2024 pm 10:43 PM

Laman web ini melaporkan pada 7 Mac bahawa Dr. Zhou Yuefeng, Presiden Barisan Produk Penyimpanan Data Huawei, baru-baru ini menghadiri persidangan MWC2024 dan secara khusus menunjukkan penyelesaian penyimpanan magnetoelektrik OceanStorArctic generasi baharu yang direka untuk data hangat (WarmData) dan data sejuk (ColdData). Zhou Yuefeng, Presiden barisan produk penyimpanan data Huawei, mengeluarkan satu siri penyelesaian inovatif Sumber imej: Siaran akhbar rasmi Huawei yang dilampirkan pada tapak ini adalah seperti berikut: Kos penyelesaian ini adalah 20% lebih rendah daripada pita magnetik. penggunaan kuasa adalah 90% lebih rendah daripada cakera keras. Menurut bloksandfiles media teknologi asing, jurucakap Huawei turut mendedahkan maklumat tentang penyelesaian storan magnetoelektrik: Cakera magnetoelektronik (MED) Huawei ialah inovasi utama dalam media storan magnetik. Generasi pertama ME

Kemahiran pembangunan Vue3+TS+Vite: cara menyulitkan dan menyimpan data Kemahiran pembangunan Vue3+TS+Vite: cara menyulitkan dan menyimpan data Sep 10, 2023 pm 04:51 PM

Petua pembangunan Vue3+TS+Vite: Cara menyulitkan dan menyimpan data Dengan perkembangan pesat teknologi Internet, keselamatan data dan perlindungan privasi menjadi semakin penting. Dalam persekitaran pembangunan Vue3+TS+Vite, cara menyulitkan dan menyimpan data adalah masalah yang perlu dihadapi oleh setiap pembangun. Artikel ini akan memperkenalkan beberapa teknik penyulitan dan storan data biasa untuk membantu pembangun meningkatkan keselamatan aplikasi dan pengalaman pengguna. 1. Penyulitan Data Penyulitan Data Bahagian Hadapan Penyulitan Bahagian Hadapan ialah bahagian penting dalam melindungi keselamatan data. Biasa digunakan

Proses pemasangan Git pada Ubuntu Proses pemasangan Git pada Ubuntu Mar 20, 2024 pm 04:51 PM

Git ialah sistem kawalan versi teragih yang pantas, boleh dipercayai dan boleh disesuaikan. Ia direka bentuk untuk menyokong aliran kerja bukan linear teragih, menjadikannya ideal untuk pasukan pembangunan perisian dari semua saiz. Setiap direktori kerja Git ialah repositori bebas dengan sejarah lengkap semua perubahan dan keupayaan untuk menjejak versi walaupun tanpa akses rangkaian atau pelayan pusat. GitHub ialah repositori Git yang dihoskan pada awan yang menyediakan semua ciri kawalan semakan yang diedarkan. GitHub ialah repositori Git yang dihoskan pada awan. Tidak seperti Git yang merupakan alat CLI, GitHub mempunyai antara muka pengguna grafik berasaskan web. Ia digunakan untuk kawalan versi, yang melibatkan kerjasama dengan pembangun lain dan menjejaki perubahan pada skrip dan

Analisis mendalam tentang peranan dan penggunaan kata kunci statik dalam bahasa C Analisis mendalam tentang peranan dan penggunaan kata kunci statik dalam bahasa C Feb 20, 2024 pm 04:30 PM

Analisis mendalam tentang peranan dan penggunaan kata kunci statik dalam bahasa C Dalam bahasa C, statik ialah kata kunci yang sangat penting, yang boleh digunakan dalam definisi fungsi, pembolehubah dan jenis data. Menggunakan kata kunci statik boleh menukar atribut pautan, skop dan kitaran hayat objek Mari analisa peranan dan penggunaan kata kunci statik dalam bahasa C secara terperinci. Pembolehubah statik dan fungsi: Pembolehubah yang ditakrifkan menggunakan kata kunci statik di dalam fungsi dipanggil pembolehubah statik, yang mempunyai kitaran hayat global

Cara menggunakan sessionStorage dengan betul untuk melindungi data sensitif Cara menggunakan sessionStorage dengan betul untuk melindungi data sensitif Jan 13, 2024 am 11:54 AM

Cara menggunakan sessionStorage dengan betul untuk menyimpan maklumat sensitif memerlukan contoh kod khusus Sama ada dalam pembangunan web atau pembangunan aplikasi mudah alih, kami selalunya perlu menyimpan dan memproses maklumat sensitif, seperti bukti kelayakan log masuk pengguna, nombor ID, dsb. Dalam pembangunan bahagian hadapan, menggunakan sessionStorage ialah penyelesaian storan biasa. Walau bagaimanapun, memandangkan sessionStorage ialah storan berasaskan pelayar, beberapa isu keselamatan perlu diberi perhatian untuk memastikan maklumat sensitif yang disimpan tidak diakses dan digunakan secara berniat jahat.

Cari nod ke-n daripada senarai pautan terakhir dalam C++ menggunakan kaedah rekursif Cari nod ke-n daripada senarai pautan terakhir dalam C++ menggunakan kaedah rekursif Sep 15, 2023 pm 05:53 PM

Diberi senarai terpaut tunggal dan integer positif N sebagai input. Matlamatnya adalah untuk mencari nod N dari penghujung senarai yang diberikan menggunakan rekursi. Jika senarai input mempunyai nod a→b→c→d→e→f dan N ialah 4, maka nod ke-4 dari yang terakhir ialah c. Kita akan mula-mula melintasi sehingga nod terakhir dalam senarai dan apabila kembali daripada kiraan kenaikan rekursif (backtracking). Apabila kiraan sama dengan N, penunjuk ke nod semasa dikembalikan sebagai hasilnya. Mari kita lihat pelbagai senario input dan output untuk ini - Input - Senarai: -1→5→7→12→2→96→33N=3 Output − Nod Nth dari yang terakhir ialah: 2 Penjelasan − Nod ketiga ialah 2 . Input − Senarai: -12→53→8→19→20→96→33N=8 Output – Nod tidak wujud

Apakah ciri sintaks dan struktur bagi ungkapan lambda? Apakah ciri sintaks dan struktur bagi ungkapan lambda? Apr 25, 2024 pm 01:12 PM

Ungkapan Lambda ialah fungsi tanpa nama tanpa nama, dan sintaksnya ialah: (parameter_list)->expression. Mereka menampilkan ketanpa nama, kepelbagaian, kari dan penutupan. Dalam aplikasi praktikal, ungkapan Lambda boleh digunakan untuk mentakrifkan fungsi secara ringkas, seperti fungsi penjumlahan sum_lambda=lambdax,y:x+y, dan gunakan fungsi map() pada senarai untuk melaksanakan operasi penjumlahan.

Peranan dan senario aplikasi kaedah statik peribadi dalam PHP Peranan dan senario aplikasi kaedah statik peribadi dalam PHP Mar 23, 2024 am 10:18 AM

Peranan dan senario aplikasi kaedah statik persendirian dalam PHP Dalam pengaturcaraan PHP, kaedah statik persendirian ialah jenis kaedah khas Ia hanya boleh diakses dalam kelas di mana ia ditakrifkan dan tidak boleh dipanggil secara langsung dari luar. Kaedah statik persendirian biasanya digunakan untuk pelaksanaan logik dalaman kelas, menyediakan cara untuk merangkum dan menyembunyikan butiran Pada masa yang sama, mereka mempunyai ciri kaedah statik dan boleh dipanggil tanpa instantiating objek kelas. Berikut akan membincangkan peranan dan senario aplikasi kaedah statik persendirian, dan memberikan contoh kod khusus. Fungsi: merangkum dan menyembunyikan butiran pelaksanaan: statik peribadi

See all articles