數據結構02線性表

第二章?線性表

C++中STL
順序表:vector ? ?http://blog.csdn.net/weixin_37289816/article/details/54710677
鏈表:list ? ?http://blog.csdn.net/weixin_37289816/article/details/54773406

在數據元素的非空有限集中:

(1)存在唯一一個被稱作“第一個”的數據元素;

(2)存在唯一一個被稱作“最后一個”的數據元素;

(3)除第一個之外,集合中的每個數據元素均只有一個前驅;

(4)除最后一個之外,集合中每個元素均只有一個后繼。

2.1 線性表的類型定義

線性表(linear_list) n個數據元素的有限序列。

? ?線性表 --> 文件file

數據元素 --> 記錄 record

? ?數據項 -->

線性表中的數據元素可以是各種各樣的,但同一線性表中的元素必定具有相同特性,即屬同一對象。

相鄰數據元素之間存在著序偶(ordered pair)關系。

直接前驅

直接后繼

線性表中元素的個數n定義為線性表的長度,n=0時稱為空表。

i稱為位序

?

基本操作:

InitList

DestroyList

ClearList

ListEmpty

ListLength

GetElem

LocateElem

PriorElem

NextElem

ListInsert

ListDelete

ListTraverse

2.2 線性表的順序表示和實現

用一組地址連續的存儲單元依次存儲線性表的數據元素。


是線性表的第一個數據元素的存儲位置,通常稱作線性表的起始位置或基地址。

隨機存取

順序表,用數組表示。

2.3 線性表的鏈式表示和實現

順序表:隨機存取

鏈表:插入、刪除

?

線性鏈表/單鏈表:用一組任意的存儲單元存儲線性表的數據元素。

|--數據域

|--指針域

?

頭指針指向頭結點,頭結點指向首結點。

頭結點的數據域可以不存儲任何信息,也可以存儲如線性表的長度等類的信息。

在單鏈表中,取得第i個數據元素必須從頭指針出發尋找,因此,單鏈表是非隨機存取的存儲結構。

?

靜態鏈表

用一維數組來描述線性鏈表

方便于在不設指針類型的高級程序設計語言中使用鏈表結構。

數組的一個分量表示一個結點,同時用游標(指示器cur)代替指針指示結點在數組中的相對位置。數組的第零分量可看成頭節點,其指針域指示鏈表的第一個結點。

為了辨明數組中哪些分量未被使用,解決的辦法是將所有未被使用過以及被刪除的分量用游標鏈成一個備用的鏈表,每當進行插入時便可從備用鏈表上取得第一個結點作為待插入的新結點;反之,在刪除時將從鏈表中刪除下來的結點鏈接到備用鏈表上。

?

循環鏈表 circular linked list

表中最后一個結點的指針域指向頭結點,整個鏈表形成一個環。

通常為,僅設尾指針的循環鏈表。

?

雙向鏈表 double linked list

結點中有兩個指針域,其一指向直接后繼,另一指向直接前驅。

?

2.4 線性表的應用——一元多項式的表示及相加

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387217.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387217.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387217.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

訓練一個神經網絡 能讓她認得我

寫個神經網絡,讓她認得我(?????)(Tensorflow,opencv,dlib,cnn,人臉識別) 這段時間正在學習tensorflow的卷積神經網絡部分,為了對卷積神經網絡能夠有一個更深的了解,自己動手實現一個例程是比較好的方式,所以就選了一個這樣比…

數據結構03棧和隊列

第三章棧和隊列 STL棧:stack http://blog.csdn.net/weixin_37289816/article/details/54773495隊列:queue http://blog.csdn.net/weixin_37289816/article/details/54773581priority_queue http://blog.csdn.net/weixin_37289816/article/details/5477…

Java動態編譯執行

在某些情況下,我們需要動態生成java代碼,通過動態編譯,然后執行代碼。JAVA API提供了相應的工具(JavaCompiler)來實現動態編譯。下面我們通過一個簡單的例子介紹,如何通過JavaCompiler實現java代碼動態編譯…

樹莓派pwm驅動好盈電調及伺服電機

本文講述如何通過樹莓派的硬件PWM控制好盈電調來驅動RC車子的前進后退,以及如何驅動伺服電機來控制車子轉向。 1. 好盈電調簡介 車子上的電調型號為:WP-10BLS-A-RTR,在好盈官網并沒有搜到對應手冊,但找到一份通用RC競速車的電調使…

數據結構04串

第四章 串 STL:string http://blog.csdn.net/weixin_37289816/article/details/54716009計算機上非數值處理的對象基本上是字符串數據。 在不同類型的應用中,字符串具有不同的特點,要有效的實現字符串的處理,必須選用合適的存儲…

CAS單點登錄原理解析

CAS單點登錄原理解析 SSO英文全稱Single Sign On,單點登錄。SSO是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。CAS是一種基于http協議的B/S應用系統單點登錄實現方案,認識CAS之前首先要熟悉http協議、Session與Co…

JDK1.6版添加了新的ScriptEngine類,允許用戶直接執行js代碼。

JDK1.6版添加了新的ScriptEngine類,允許用戶直接執行js代碼。在Java中直接調用js代碼 不能調用瀏覽器中定義的js函數,會拋出異常提示ReferenceError: “alert” is not defined。[java] view plaincopypackage com.sinaapp.manjushri; import javax.sc…

數據結構05數組和廣義表

第五章 數組 和 廣義表 數組和廣義表可以看成是線性表在下述含義上的擴展:表中的數據元素本身也是一個數據結構。 5.1 數組的定義 n維數組中每個元素都受著n個關系的約束,每個元素都有一個直接后繼元素。 可以把二維數組看成是這樣一個定長線性表&…

k8s的ingress使用

ingress 可以配置一個入口來提供k8s上service從外部來訪問的url、負載平衡流量、終止SSL和提供基于名稱的虛擬主機。 配置ingress的yaml: 要求域名解析無誤 要求service對應的pod正常 一、test1.domain.com --> service1:8080 apiVersion: extensions/v1beta1…

JDK1.8中如何用ScriptEngine動態執行JS

JDK1.8中如何用ScriptEngine動態執行JS jdk1.6開始就提供了動態腳本語言諸如JavaScript動態的支持。這無疑是一個很好的功能,畢竟Java的語法不是適合成為動態語言。而JDK通過執行JavaScript腳本可以彌補這一不足。這也符合“Java虛擬機不僅僅是Java一種語言的虛擬機…

數據結構06樹和二叉樹

第六章 樹和二叉樹 6.1 樹的定義和基本術語 樹 Tree 是n個結點的有限集。 任意一棵非空樹中: (1)有且僅有一個特定的稱為根(root)的結點; (2)當n>1時,其余結點可…

2019.03.20 mvt,Django分頁

MVT模式 MVT各部分的功能: M全拼為Model,與MVC中的M功能相同,負責和數據庫交互,進行數據處理。 V全拼為View,與MVC中的C功能相同,接收請求,進行業務處理,返回響應。 T全拼為Tem…

CountDownLatch,CyclicBarrier和Semaphore

在java 1.5中,提供了一些非常有用的輔助類來幫助我們進行并發編程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我們就來學習一下這三個輔助類的用法。以下是本文目錄大綱:一.CountDownLatch用法二.CyclicBarrie…

數據結構07排序

第十章內部排序 10.1 概述 排序就是把一組數據按關鍵字的大小有規律地排列。經過排序的數據更易于查找。 排序前KiKj,且Ki在前: 排序方法是穩定的,若排序后Ki在前; 排序方法是不穩定的,如排序后Kj在前。 分類: 內…

數據結構08查找

第九章 查找 另一種在實際應用中大量使用的數據結構--查找表。 所謂查找,即為在一個含有眾多的數據元素的查找表中找出某個“特定的”數據元素。 查找表 search table 是由同一類型的數據元素構成的集合。集合中的數據元素之間存在著完全松散的關系,故…

下載Centos7 64位鏡像

下載Centos7 64位鏡像 1.打開Centos官網 打開Centos官方網站地址:https://www.centos.org/,點擊Get CentOS Now 2.點擊Minimal ISO鏡像 Minimal ISO鏡像,與DVD ISO鏡像的差別有很多,這里只說兩點 1.Minimal ISO類似于Windows的純凈…

[Objective-C語言教程]結構體(17)

Objective-C數組可定義包含多個相同類型的數據項的變量類型,但結構體是Objective-C編程中的另一個用戶定義數據類型,它可組合不同類型的數據項。 結構體用于表示記錄,假設要圖書館中跟蹤書籍信息。可能希望跟蹤每本書的以下屬性 - 標題作者學…

Scala01入門

第1章 可伸展的語言 Scala應用范圍廣,從編寫腳本,到建立大型系統。 運行在標準Java平臺上,與Java庫無縫交互。 更能發揮力量的地方:建立大型系統或可重用控件的架構。 將面向對象和函數式編程加入到靜態類型語言。 在Scala中&a…

架構師之路17年精選80篇

【架構必備】 《互聯網架構如何實現“高并發”》4W 《TCP接入層的負載均衡、高可用、擴展性架構設計》2.2W 《配置中心架構設計演進》1.7W 《跨公網調用的大坑與架構優化》1.4W 《DNS在架構設計中的巧用》1.9W 《消息如何在網絡上安全傳輸》1.2W 《10W定時任務,如何…

iphone手機型號獲取

#import <sys/utsname.h> //手機型號 NSString *device [self iphoneType]; (NSString *)iphoneType { struct utsname systemInfo; uname(&systemInfo); NSString *platform [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; if…