日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理论基础 —— 线性表

發布時間:2025/3/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理论基础 —— 线性表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【邏輯結構】

線性表是零或多個數據元素組成的有限序列,其中,數據元素的個數定義為線性表的長度,當長度為 0 時稱為空表,反之稱為非空表

一個非空表常記為:,其中 ai 是表中的第 i 個數據元素,表中的 ?領先于?,?領先于?,稱??是??的直接前驅元素,?是??的直接后繼元素。當??時,?有且只有一個直接后繼;當??時,?有且只有一個直接前驅。

【順序存儲結構】

1.概述

線性表的順序存儲結構稱為順序表,常用一維數組來實現,其通過數據元素物理存儲的相鄰關系來反映數據元素之間邏輯上的相鄰關系。?

線性表支持對數據元素的隨機訪問,因此屬于隨機存取結構。設順序表的每個元素占用 c 個存儲單元,則第 i 個元素的存儲地址為:

2.特點

  • 無需為表示結點間的邏輯關系而增加額外的存儲空間
  • 可方便地隨機讀取表中的任一元素
  • 插入或刪除運算需要移動大量元素
  • 表長變化較大時,難以確定合適的存儲規模

【鏈式存儲結構】

1.單鏈表

1)概述

單鏈表是用一組任意的存儲單元存放線性表的元素,這組存儲單元可以連續,也可以不連續,即邏輯順序與物理順序可以不一致,表可以進行擴充。

為了能正確的表示元素間的邏輯關系,每個存儲單元在存儲數據元素的同時,還必須存儲其后繼元素所在的地址信息,這兩部分構成了數據元素的存儲映像,稱為結點(Node)。每個結點分為兩部分,一部分是存儲數據元素的數據域,一部分是存放該結點后繼結點地址信息的指針域,通過每個結點的指針域,線性表的數據元素按其邏輯順序鏈接在一起,由于每個結點只有一個指針域,因此被稱為單鏈表

2)頭指針與頭結點

由于單鏈表中每個結點的存儲地址存放在其前驅結點的指針域中,第一個結點沒有前驅,因此通常在單鏈表的開始結點之前設置一個頭指針,指向第一個元素所在的結點,因而頭指針具有標識單鏈表的作用;同時,由于最后一個結點沒有后繼,故通常將終端結點的指針域設為空(NULL)

為便于處理,常在開始節點之前設置一個類型相同的頭結點,其數據域不存儲任何信息(也可存儲鏈表長度等附加信息),指針域指向開始結點,并使頭指針始終指向頭結點,這樣空表與非空表的處理就統一了。

兩者異同:

頭指針頭結點
指向鏈表開始結點,若鏈表有頭結點,則指向頭結點是為了操作統一與方便而設置的,放在開始節點之前,其數據域一般無意義
具有標識作用,常用頭指針冠以鏈表的名字使對開始結點前插入結點、刪除開始結點的操作與其他結點的操作統一,便于操作
無論鏈表是否為空難,頭指針均不為空,其是鏈表的必要元素頭結點不一定是鏈表的必要元素

3)順序表與單鏈表的比較

順序表由向量實現,是一種隨機存取結構,對表中任一結點都可以在 O(1) 時間內直接地存取,而鏈表中的結點,需從頭指針起,順著鏈找才能取得。

在鏈表中的任何位置上進行插入和刪除,都只需要修改指針,而在順序表中進行插入和刪除,平均要移動表中近一半的結點,尤其是當每個結點的信息量較大時,移動結點的時間開銷就十分大。

因此,若線性表的操作主要是進行查找,宜采用順序表存儲結構;若線性表的操作主要是插入、刪除, 宜采用鏈表做存儲結構。

2.循環鏈表

在單鏈表中,將尾結點的指針域由空結點改為指向頭結點,就使得整個單鏈表形成了一個環,不增加額外的空間,但卻對不少操作帶來了方便。其最大特點是,從循環表中任一結點出發,都能訪問到表中的其他結點。

但其也存在一定的危險性,即循環鏈表中沒有明顯的尾端,可能會使循環鏈表的處理操作進入死循環,因此需要格外注意循環條件,判斷用作循環變量的工作指針是否等于某一定指針(頭指針或尾指針),即原來是判斷 p->next!=NULL,現在是變為 p->next!=first

為使空鏈表和非空鏈表處理一致,通常設置一個頭結點。

3.雙向鏈表

對于單鏈表來說,next 字段僅指向后繼結點,不能有效的找到前驅,很多操作及其不便,因此可在單鏈表的基礎上增加一個前驅指針。

由于在雙向鏈表中既有前向鏈又有后向鏈,尋找任一個結點的直接前驅結點與直接后繼結點變得非常方便。設指針 p 指向雙鏈表中某一結點,則有:?p->llink->rlink = p = p->rlink->llink?

4.靜態鏈表

靜態鏈表是用數組來表示單鏈表,用數組元素的下標來模擬單鏈表的指針,其每個數組元素都由兩個域構成:數據域 data 存放數據元素、游標?cur?存放該元素的后繼元素所在的數組下標。

在某些程序設計語言中,沒有指針,因此,靜態鏈表的存在具有必要性。其優點在于,刪除和插入元素時不需要移動元素,直接修改 next 指針即可,效率較高,其缺點在于,不能動態的修改數組的大小,跟靜態數組一樣不能按需分配存儲空間。

存儲結構:

#define maxSize=n template<class T> struct Node{T data;//數據域int next;//指針域 }staticLink[maxSize];

【實現】

  • 順序表:點擊這里
  • 單鏈表:點擊這里
  • 循環鏈表:點擊這里
  • 雙向鏈表:點擊這里
  • 總結

    以上是生活随笔為你收集整理的理论基础 —— 线性表的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 求av网址 | 亚洲欧美成人 | 国产主播福利在线 | 国产第6页 | 男人肌肌桶女人肌肌 | 精品欧美国产 | 久草精品在线观看视频 | 黄色三级网站 | 亚洲一区二区三区四区在线播放 | 成人av影院在线观看 | 天堂在线亚洲 | 亚洲免费大全 | 国产精品久久久久久久av福利 | 日韩久久一级片 | 国产一级做a爱片久久毛片a | 国产又爽又黄无码无遮挡在线观看 | av卡一卡二| av特黄| 美女插插视频 | 天天做夜夜爱 | 超碰碰碰碰 | 特级淫片裸体免费看 | 人妻少妇一区二区 | 精品98 | 亚洲另类色综合网站 | 国产性在线 | a级在线观看 | 欧美在线观看视频一区 | 亚洲美女www午夜 | 色欲色香天天天综合网www | 毛片在线观看网站 | 欧美77777| 精品无码m3u8在线观看 | xxxxx色| 日韩精品一区二区三区四区五区 | 黄色视屏在线播放 | 中文视频在线观看 | 婷婷综合在线 | 中文字幕中文在线 | 亚洲人人干 | 欧美三级视频 | 久久亚洲AV成人无码一二三 | 光溜溜视频素材大全美女 | 久久久久高清 | 在线日韩亚洲 | 熟女高潮一区二区三区视频 | 成人午夜免费电影 | 九九热免费 | 日本精品视频在线 | 国产成人久久精品麻豆二区 | 国产精品久草 | 三级中文字幕在线 | 欧美日韩在线观看一区二区 | 色屋在线 | 色老妹 | 欧美一级片一区二区 | 添女人荫蒂视频 | www.黄色免费| 特色黄色片 | 四虎影视免费永久观看在线 | 欧美性俱乐部 | 国产a级网站 | 国产视频自拍一区 | 中文字幕日韩人妻在线视频 | 国产小视频一区 | av网站入口 | 99国内精品| 欧美国产一级片 | 国产成人在线观看 | 亚洲一本二本 | 亚洲无卡视频 | 狠狠干in | 爱爱小视频网站 | 国产乱国产乱老熟300部视频 | 国产一区二区自拍 | 午夜爽爽爽视频 | 国产激情网址 | 综合av| 亚洲国产天堂av | 日韩免费视频一区二区 | 欧美精品日韩少妇 | 成了校长的性脔h文 | 欧美激情综合五月色丁香 | 国产高清视频网站 | 成人国产精品免费 | 国产成人精品久久二区二区 | 亚洲欧美日韩不卡 | 国产在线你懂得 | 91一二区| 日日干日日摸 | 中日韩免费视频 | 日韩视频一区 | 成人免费看类便视频 | va欧美| 意大利少妇愉情理伦片 | 中文字幕女同 | 夜色视频在线观看 | 成人激情在线观看 | 欧美一级录像 |