設非空線性ha和hb都用帶頭結點的迴圈雙鏈表表示。設計乙個演算法insert(ha,hb,i)。其功能是:i=0時,將線性表hb插入到線性表ha的最前面;當i>0時,將線性表hb插入到線性表ha中的第i個結點的後面;當i大於等於線性表ha的長度時,將線性表hb插入到線性表ha的最後面。
完整源**如下:
#include
#include
typedef struct dnode
dlinknode;
void
init
(dlinknode *&l
)void
creat
(dlinknode *&l
,int a[
],int n)
r->next =l;
}void
insert
(dlinknode *
&ha,dlinknode *
&hb,int i)
printf
("length:%d\n"
,length);if
(i>=length)
//把hb插入到ha的結尾
else
if(i==0)
//把錶hb插入到ha的開頭
else
//把hb插入到ha中第i個元素的後面
pre = p-
>next;
q = hb;
while
(q->next != hb)
q = q-
>next;
q->next = pre;
pre-
>prior = q;
p->next = hb-
>next;
hb->next-
>prior = p;}}
void
print
(dlinknode *l)
printf
("\n");
}int main()
; int b[10]
=;init
(ha)
;init
(hb)
;creat
(ha,a,10)
;creat
(hb,b,10)
;insert
(ha,hb,2)
;print
(ha)
;return0;
}
資料結構(線性表)
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...