資料結構 線性表2 5

2021-09-26 01:31:22 字數 699 閱讀 8597

題目:試著編寫乙個演算法,空間複雜度為o(1),將帶頭結點的單鏈表a中的元素全部逆置。

思想:本題看似是乙個反轉的題目,但是卻與普通的資料逆置略微有所區別,眾所周知,單鏈表的元素插入有頭插法和尾插法,其中,頭插法其實在輸出時候就相當於逆置的順序輸出格式,所以本題只需要將第乙個節點單獨取出來儲存,對後面的所有元素在頭結點l(或者叫head)後面再做一遍頭插法就好了。

**展示:

#include #include #include /*

* 題目:試著編寫乙個演算法,空間複雜度為o(1),將帶頭結點的單鏈表a中的元素全部逆置。

* */

typedef struct linknode

linknode,*linklist;

void initlinklist(linklist &l)

void insertlinklist(linklist &l,int x)

void print(linklist l)

printf("\n");

}void reverse(linklist &l)

}int main()

print(l);

reverse(l);

printf("逆置後");

print(l);

return 0;

}

資料結構(線性表)

1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...

資料結構 線性表

參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...

資料結構 線性表

線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...