熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

線性表- 順序存儲結構- 順序表

2013-11-15 15:24:56  來源: 數據結構 

  順序表

   順序表的定義

  () 順序存儲方法

  即把線性表的結點按邏輯次序依次存放在一組地址連續的存儲單元裡的方法

  () 順序表(Sequential List)

  用順序存儲方法存儲的線性表簡稱為順序表(Sequential List)

   結點a i 的存儲地址

  不失一般性設線性表中所有結點的類型相同則每個結點所占用存儲空間大小亦相同假設表中每個結點占用c個存儲單元其中第一個單

  元的存儲地址則是該結點的存儲地址並設表中開始結點a 的存儲地址(簡稱為基地址)是LOC(a )那麼結點a i 的存儲地址LOC(a i

  )可通過下式計算

  LOC(a i )= LOC(a )+(i)*c ≤i≤n

  注意

  在順序表中每個結點a i 的存儲地址是該結點在表中的位置i的線性函數只要知道基地址和每個結點的大小就可在相同時間內求出任一結

  點的存儲地址是一種 隨機存取結構

  順序表類型定義

  #define ListSize //表空間的大小可根據實際需要而定這裡假設為

  typedef int DataType; //DataType的類型可根據實際情況而定這裡假設為int

  typedef struct {

  DataType data[ListSize];//向量data用於存放表結點

  int length;//當前的表長度

  }SeqList;

  

  注意

  ① 用向量這種順序存儲的數組類型存儲線性表的元素外順序表還應該用一個變量來表示線性表的長度屬性因此用結構類型來定義順序表類

  型

  ② 存放線性表結點的向量空間的大小ListSize應仔細選值使其既能滿足表結點的數目動態增加的需求又不致於預先定義過大而浪費存儲

  空間

  ③ 由於C語言中向量的下標從開始所以若L是SeqList類型的順序表則線性表的開始結點a 和終端結點a n 分別存儲在Ldata[]和

  LData[Llength]中

  ④ 若L是SeqList類型的指針變量則a 和a n 分別存儲在L>data[]和L>data[L>length]中

  順序表的特點

  順序表是用向量實現的線性表向量的下標可以看作結點的相對地址因此順序表的的特點是邏輯上相鄰的結點其物理位置亦相鄰


From:http://tw.wingwit.com/Article/program/sjjg/201311/23372.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.