請教,使用多種方法用C語言建立線性表 15

2025-01-02 08:55:21 字數 2154 閱讀 1211

請教,使用多種方法用c語言建立線性表

1樓:網友

線性表和陣列的區別非常的明顯。

用通俗一點的話來說,就是:

如果是複雜型別,要求:所有的物件的控制代碼的首位址(或者首位址的指標)在記憶體中必須按低位址到高位址、不間斷的、等距的連續儲存。

線性表: 線性表必須用自引用型別所例項化的物件進行排列。所以線性表只需要討論複雜型別,因為乙個線性表自引用型別中的成員變數必須包含乙個指標,而這個指標必須指向下乙個和自己同型別的物件。

比如說我是乙個西瓜,在房間a,那麼我這個西瓜裡面必須有乙個標誌,這個標誌(指標)將指向我的下乙個夥計,也就是另外乙個西瓜。我的下乙個西瓜在房間p,那麼我的標誌就必須指向p房間。這樣一來,每兩個「西瓜」就不用佔據相鄰的房間,而可以跨越房間儲存。

當我們需要知道「下乙個」在**,是誰的時候,只需要看看我這個西瓜的標誌指向**就可以了。(注意,看我這個西瓜的時候,只能知道下乙個西瓜在**,要想知道其他的西瓜在**,恐怕需要從頭開始乙個乙個找)。 這裡也應了專業定義裡的:

線性表在邏輯上是線性的,但是不一定在物理上線性連續。

差點忘了,你要的是實現方法。這個不用你親自編寫了,我幫你到網上找找,多如牛毛。

參考資料裡是乙個完整的**。找到這麼乙個**並不難,但是要完全理解他,恐怕得花點精力。這些知識屬於資料結構前幾章的內容,祝你好運。

2樓:網友

就是讓你建乙個陣列。

1.順序儲存結構=陣列。

2.陣列=最簡單的線形表。

資料結構重在理解 而不是背書。

如何用c++建立乙個線性表?

3樓:信必鑫服務平臺

用c++建立乙個線性表有以下5步:

1、準備資料:

定義了順序表的最大長度maxlen、順序表資料元素的型別data以及纖鎮州順序表的資料結構sltype。在資料結構sltype中,listen為順序表已存結點的數量,也就是當前順序表的長度,listdata是乙個結構陣列,用來存放各個資料結點。我們認為該順序表是乙個班級學生的記錄。

其中,key為學號,name為學生的名稱,age為年齡。因為陣列都是從下標0開始的,為了使用方便,我們從下標1開始記錄資料結點,下標0的位置不可用。

2、初始化順序表:

在使用順序表之前,首先建立乙個空的順序表,也就是初始化順序表。這裡,在程式中只需設定順序表的結點數量listlen為毀蔽0即可。這樣,後面需要新增的資料元素將從順序表的第乙個位置儲存。

示例**:<>

3、計算線性表的長度:計算線性表的長度也就是計算線性表中結點的個數,由於我們在sltype中定義了listlen來表示結點的數量,所以我們只需要獲得這個變數的值即可。

4、插入結點:

插入節點就是**性表l的第i個位置上插入乙個新的結點,使其後的結點編號依次加1。這時,插入乙個新節點之後,線性表l的長度將變為n+1。插入結點操作的難點在於隨後的每個結點資料都要向後移動,計算機比較大,示例**如下:

5、追加結點:

追加結點就是在順序表的尾部插入結點旅碰,因此不必進行大量資料的移動,**實現與插入結點相比就要簡單的多。

用c語言來編寫兩個線性表合併為乙個線性表的程式,初學者,不太會,麻煩高手賜教,謝謝!

4樓:匿名使用者

有很多方法可以實現的哦。仔細想一下麼。、

我把幾種思路,然後優劣及改進跟你說一下。

一開始的思路:把a、b都丟進c裡,然後對c排序。人們一開始想到的總是最懶的辦法,往往是最沒效率的。

改進:由於a、b是排好序的,先把a丟進c裡,再拿b元素乙個個往裡查詢插入。這麼做要頻繁移動元素,如果線性表不是連結串列的話,開銷很大。

再改進:從a、b中各拿乙個元素出來,比較後把小的放進c裡,再從剛才拿出元素的那個表裡再拿個元素出來,再比較,把小的放進c裡,重複這樣的操作,直到a、b其中一箇中的元素拿完為止,再把還有剩的元素全丟進c裡。其中重複操作的部分大致是這樣:

while(ib[j])

elsek=k+1;

思考:能不能從頭部和尾部一起開始上述過程呢?這樣一來的話,雖然比較次數沒減少,但是迴圈次數卻能減少很多哦。

5樓:匿名使用者

對比這兩個表指標指向的值,小的先先寫入c中並指標後移,如此迴圈。直到全部寫入。注意不要越界。

用多種方法求出十八與27的最大公因數並得出答案

方法一,分解質祥茄因數法 18 2 3 3,27 3 3 3 18,27 3 3 9 方法二,短除法禪宴派 具賀賀體過程見追答中的 18和27的最大公因數是 9 你好,本題已扒孫解答,如果滿意,請春正鏈點右上角 清衫採納答案 支援一下。用多種方法求出十八與27的最大公因數 方法一,分解質因數法 18...

怎樣驗證有氨氣生成,如何檢驗氨氣 多種方法

我也是零九考生,大概三種方法 1 收集氣體後將溼潤的紫色石蕊試紙放於集氣瓶口,若試紙變紅,則為氨氣 2 將氣體直接通入石蕊試液中,試液變紅 3 用蘸有稀鹽酸的玻璃棒靠近氣體,會冒白煙,即產生氯化氨 加水溶解,滴入氫氧化鈉,在酒精燈上加熱,用玻梆將溼潤的石蕊試紙放於試管口,變紅,則有氨氣生成 如果產生...

yz的偏導數,要詳細過程,有多種方法追加20分

偏導數求法就是正常求和利用微分不變性 對z的偏導 版 exp zln x y lnx yexp zln x y ln x y x y z 對x的偏導 z y z除以 權x z 1 對y的偏導 z y z 1 除以x z 微分不變性的求法和上面根本上是一樣的 du lnx y ln x y x y z...