#ifndef insert_h_included
#define insert_h_included
#include
#include
#include
using
namespace std;
class
arraylist
arraylist
(int
* num,
int listsize,
int numofm);~
arraylist()
void
debug()
;void
insert_1
(int i_num,
int index,
int data)
;void
show_list()
;protected
:int
* element;
int* front_1;
int* last_1;
int list_length;
int list_num;};
arraylist::
arraylist
(int
* num,
int listsize,
int numofm)
:element
(num)
,list_length
(listsize)
,list_num
(numofm)
else}}
void arraylist::
debug()
cout<}void arraylist::
insert_1
(int i_num,
int index,
int data)
cout<<
"最大空間數為:"
"確定唯一陣列並插入資料:"
int i=
0;i++i)
if(last_1[i_num]
==front_1[i_num]
)for
(int l=
0;l-(front_1[i_num]
+index+1)
+1;++l)
//再向右複製挪動i陣列index右側的剩餘元素
element[last_1[i_num]+1
-l]=element[last_1[i_num]
-l];
element[front_1[i_num]
+index+1]
=data;
//插入元素
++last_1[i_num]
; arraylist::
debug()
; cout<<
"插入資料的剩餘空間為:\n"
;for
(int i=
0;i++i)
space[i]
=front_1[i+2]
-last_1[i+1]
;for
(int i=
0;i++i)
cout<<
"第"<1<<
"個子陣列的剩餘空間為:"
<
elseif(
(i_num-i-1)
>=
0&&space[i_num-i-1]
==space_max)
//space[0]才相當於第1個子陣列的空間,與待移陣列差了2個距離
for(
int l=
0;l++l)
//再向左複製挪動i陣列index左側的剩餘元素
element[front_1[i_num]
+l]=element[front_1[i_num]
+l+1];
--front_1[i_num]
; element[front_1[i_num]
+index+1]
=data;
//插入元素
arraylist::
debug()
; cout<<
"插入資料的剩餘空間為:\n"
;for
(int i=
0;i++i)
space[i]
=front_1[i+2]
-last_1[i+1]
;for
(int i=
0;i++i)
cout<<
"第"<1<<
"個子陣列的剩餘空間為:"
<
}}void arraylist::
show_list()
}#endif
// insert_h_included
資料結構(第五章)
樹下 第一講一.堆 什麼是堆?在講堆之前,我們先看看什麼是優先佇列。優先佇列 是一種特殊的佇列,從名稱上看,優先,顧名思義,取出的元素是按照一定的優先順序出隊的,而不是元素進入佇列的先後順序。優先佇列的完全二叉樹表示 堆的兩個特性 結構性 用陣列表示的完全二叉樹。有序性 任一結點的關鍵字是其子樹所有...
資料結構筆記 第五章
一.樹的邏輯結構 樹是乙個有限的集合,集合中的元素稱為結點。1 結點的個數為0 稱為空樹。2 結點的個數為1 此節點稱為根節點。3 節點的個數大於1 則除了根結點以外的結點又可分為多個集合,每乙個集合本身其實質上也是一棵樹,並且是根節點的子樹。二.二叉樹的邏輯結構 1 二叉樹的定義 二叉樹首先必須是...
資料結構筆記 第五章
雙親表示法 基本思想 用一維陣列來儲存樹的各個結點 一般 按層序儲存 陣列中的乙個元素對應樹中的乙個 結點,包括結點的資料資訊以及該結點的雙親在數 組中的下標 森林轉換為二叉樹 將森林中的每棵樹轉換成二叉樹 從第二棵二叉樹開始,依次把後一棵二叉樹的根 結點作為前一棵二叉樹根結點的右孩子,當所有二 叉...