1.設有兩個無頭結點的單鏈表,頭指標分別為ha.hb.鏈中有資料域data鏈域next,兩鍊錶的資料都按遞增序存放,現要求將hb表歸到ha表中且歸併後ha仍遞增序,歸併中ha表中已有的資料若hb中也有則hb中的資料不歸併到ha中要求不申請額外的儲存空間來完成。merge(hahb);
linklist.h
//
// linklist.h
// test
//// created by edong on 2018/10/27.
//#ifndef linklist_h
#define linklist_h
#include
#include
#endif
/* linklist_h */
typedef
int elemtype;
typedef
struct node
*linklist;
// 傳入乙個陣列,用於初始化鍊錶
linklist initlist
(int arg)
return list;
}void
printlist
(linklist l)
}//合併排序
void
sortlist
(linklist a,linklist b)
if(copyb->data==copya->data)
if(copyb->datadata)
copya2=copya2->next;
continue;}
if(copyb->data>copya->data)
}}
main.c#include
#include
"linklist.h"
#define maxsize 30
intmain
(int argc,
const
char
* argv)
;int b[maxsize]=;
linklist al=
initlist
(a);
linklist bl=
initlist
(b);
printf
("\n鍊錶a為:");
printlist
(al)
;printf
("\n鍊錶b為:");
printlist
(bl)
;printf
("\n鍊錶b、a合併後:");
sortlist
(al, bl)
;printlist
(al)
;printf
("\n");
return0;
}
線性表常見演算法實現
定義線性表 struct seqlist 初始化線性表 void init seqlist seqlist l,int n 線性表內的元素逆序 void reverse seqlist seqlist l 從一給定的順序表l中刪除下標i j i j,包括i,j 的所有元素 void delete i...
線性表演算法
1.在乙個遞增的順序表中插入乙個元素,並保持有序.分析 判斷順序表是否滿,滿了則追加空間.從表中的最後乙個元素開始,尋找插入位置,找到則插入,表長增一 int listinsert sq sqlist l,int ele for k l length 1 k 0 l slist k e k l sl...
線性表演算法題庫 線性表習題
鍊錶。若指標p指向某結點時,能夠根據該指標找到其直接後繼,能夠順後繼指標鏈找到p結點後的結點。但是由於不知道其頭指標,所以無法訪問到p指標指向的結點的直接前趨。因此無法刪去該結點。2.雙鏈表。由於這樣的鍊錶提供雙向指標,根據p結點的前趨指標和後繼指標可以查詢到其直接前趨和直接後繼,從而可以刪除該結點...