第二章線性表
線索cues
筆記notes
2.1線性結構特點
1、乙個首乙個尾
2、除首尾外其他結點只有乙個直接前驅和乙個直接後繼。
線性結構包括線性表、堆疊、佇列、字串、陣列,最常用的是線性表。
2.2案例引入
一元多項式的運算
稀疏多項式的運算
線性表p=((p1,e1),(p2,e2),…,(pm,em))
2.3線性表的儲存型別與操作定義
線性表的儲存結構
2.4線性表順序儲存的實現
用一組位址連續的儲存單元依次儲存線性表的元素,可通過陣列v[n]來實現。
線性表的重要的基本操作
初始化、銷毀、清空、求長,判斷是否為空
初始化線性表l
方法一
status initlist(sqlist&l)
方法二
status initlist_sq(sqlist *l)
刪除線性表
void destroylist(sqlist &l)
清空線性表l
void clearlist(sqlist)
求線性表的長度
int getlength(sqlist l)
判斷線性表l是否為空
int isempty(sqlist l)
獲取線性表l中的某個資料元素的內容
int getelem(sqlist l,int i,elemtype &e)
int locateelem(sqlist l,elemtype e)
status listdelete_sq(sqlist &l,int i) lnode,*linklist;
單鏈表
(1)初始化
1、生成新結點作頭結點,用頭結點l指向頭結點
2、頭結點的指標域置空
status initlist_l(linklist&l)
銷毀
status destroylist_l(linklist&l)
return 0;
}
清空
status clearlist(linklist &l)
l->next=null;
return ok;
}
求表長
int listlength_l(linklist l)
return i;
}
判斷表是否為空
int listempty(linklist l)
取值
status getelem_l(linklist l,int i,elemtype &e)
if(!p || j>i ) return error; //第i個元素不存在
e=p-data; //取第i個元素
return ok;
}
查詢
lnode *locateelem_l(linklist l, elemtype e) //定義上帶*號
//返回位址序號
int locateelem_l(linklist l,elemtype e)
if(p) return j;
else return 0;
}
插入
//在第i個元素之前插入
status listinsert_l(linklist &l,int i,elemtype)
if(!p || j>i-1) return error;
s=new lnode;
s->date=e;
s->next=p->next;
p-next=s;
return ok:
}
刪除
status listdelete_l(linklist &l,int i;elemtype &e)
if(!(p->next) || j>j-1) return error;//
q=p->next;
p->next=q->next;
e=q->data;
delete q;
return ok;
}
單鏈表的建立(前插法)
void createlist_f(linklist&l,int n)
}
單鏈表的建立(尾插法)
void createlist_l(linklist &l, int n)
}
雙向鍊錶
typedef struct dulnodedulnode,*dulinklist
插入
status listinsert_dul(dulinklist &l,int i,elemtype e)
2.6順序表和煉表的區別
查詢元素順序表的時間複雜度o(1),鍊錶的時間複雜度為o(n)
插入刪除順序表的 時間複雜度為o(n),鍊錶的時間複雜度為o(1)
2.7線性表的合併
void union(list &la,list lb)
}
有序表的合併
void union(list &la,list lb)
}
有序鍊錶的合併(允許有重複)
void mergelist_l(linklist &la,linklist &lb,linklist &lc)
else
pc->next=pa?pa:pb;
deleta lb;
}}
總結summary
資料結構 第二章 線性表
線性表 是具有相同型別的n n 0 個元素的有限序列,其中n為表長,當n 0時,該錶為空表。線性表的特點 線性表的九種基本操作 initlist l 初始化表。構造乙個空的線性表。destroylist l 銷毀操作。銷毀線性表,並釋放線性表l所占用的記憶體空間。locateelem l,e 按值查...
資料結構 第二章 線性表
線性表 順序儲存 鏈式儲存 順序表單鍊錶 雙鏈表迴圈鍊錶 靜態鍊錶 陣列指標實現 借助陣列實現 定義 線性表是具有相同資料型別的n n 0 個資料元素的有限序列,其中n為表長,當n 0時該線性表是乙個空表。特點 1 個數有限 2 表中元素具有邏輯上的順序性。3 表中元素都是資料元素,每個元素都是單個...
資料結構 第二章 線性表
資料結構 第二章 線性表 模板 引數化的多型 引數化多型性 講程式所處理的物件型別引數化,使一段 可用於處理多種不同型別的物件 採用模板程式設計 提供 共享機制 邏輯功能相同,資料型別不同 定義格式 template 尖括號內又稱模板形參表 返回值型別 函式名 參數列 如果變數被引數化,則返回值型別...