1 2順序線性表的歸併

2021-09-05 09:05:29 字數 1412 閱讀 7576

18.12.23

#include

#include

#define list_initsize 100  //線性表儲存空間的初始分配量

#define list_increment 10  //線性表儲存空間空間的分配增量 

#define ok 1

#define error 0

#define overflow -1//溢位 

typedef int elemtype;      //設元素型別為int 

typedef struct

seqlist;                 //定義線性表的型別 

int initlist (seqlist &l) //線性表的初始化,構造乙個空的線性表l 

/*形參l為引用型變數,&為取位址符(此處為引用傳遞),形參相當於是實參的「別名」,對形參的操作其實就是對實參的操作。 

用了引用變數後,就不再為形參開闢記憶體,所有操作都是直接修改實參變數。 */ 

int creatlist(seqlist &l)

}int insertlist(seqlist &l,int i,elemtype e)

q = &(l.elem[i-1]);   //q為插入的位址 

for(p = &(l.elem[l.length - 1]);p >= q;--p)  //p初始值為表尾元素的位置 

*(p+1) = *p;      //插入位置及之後的元素右移

*q = e;           //插入e

++l.length;       //表長增1

return ok; 

}int deletelist(seqlist &l,int i,elemtype &e)//在順序線性表l中刪除第i個元素,並用e返回其值

/*int locate_list(seqlist l,elemtype e,int (*compare)(elemtype,elemtype))

//在順序線性表l中查詢第1個值與e滿足compare()的元素的位序 

//若找到,則返回其在l中的位序,否則返回0 

*/void mergelist(seqlist la,seqlist lb,seqlist &lc)

while(pa <= pa_last) 

*pc++ = *pa++;      //lb先完全插入,之後插入la的剩餘元素

while(pb <= pb_last)

*pc++ = *pb++;      //la先完全插入,之後插入lb的剩餘元素  

} void del_repe(seqlist &l,seqlist &e)   //刪除有序順序線性表(遞增或遞減)中重複元素,並返回其值 }} 

void printlist(seqlist l)  //輸出順序線性表 

main()

線性表順序表歸併演算法

includeusing namespace std struct sqlist l1 5 l2 5 l3 void merge sqlist l1,sqlist l2,sqlist l3 else while iwhile jl3.length k int main return 0 注意一 c語...

順序線性表

sequential linear list this file define the ds of sequential linear list s basic operation,it includes linear list insert,delete,initial,and sort oper...

順序線性表

include int const maxsize 100 typedef int element typedef struct list element list get index value list int int main 函式 初始化線性表 void list init list ls ...