# 一、概念
1.對象的多重數組表示:對一組具有相同域的對象,每一個對象都可以用一個數組來表示

2.對象的單數組表示:一個對象占據存儲中的一組連續位置

# 二、代碼
~~~
int Allocate_Object()
{
if(free == NULL)
{
cout<<"error:out of space"<<endl;
exit(0);
}
else
{
int x = free;
free = next[x];
return x;
}
}
void Free_Object(int x)
{
next[x] = free;
free = x;
}
~~~
# 三、練習
10.3-1
多重數組
key :13, 4, 8, 19, 5, 11
next:1, 2, 3, 4, 5, -1
pre:-1, 0, 1, 2, 3, 4
單數組:
13, 3, -1,?4, 6, 3, 8, 9, 6, 19, 12, 9, 5, 15, 12, 11, 18, 15
10.3-2
~~~
ALLOCATE-OBJECT()
1 if free = NIL
2 then error "out of space"
3 else x <- free
4 free <- A[x+1]
5 return x
FREE-OBJECT(x)
1 A[x+1] <- free
2 free <- x
~~~
10.3-3
在這里prev域沒有
在這里在這里prev域沒有意義,用不到
10.3-4 見[算法導論-10.3-4](http://blog.csdn.net/mishifangxiangdefeng/article/details/7707149)
假設當前的數組是緊湊的,即數組中有f個元素,都位于數組的前f個位置
分配一個新的元素時,把f+1的位置分配給它
刪除一個元素時,假設待刪除的元素的位置是i,先修改元素prev[i]的next指針和元素next[i]的prev指針,刪除這個元素。這里數組中間就留下一個空位,讓第f個元素填充這個空位,具體方法是修改元素prev[f]的next指針和元素next[f]和prev指針
10.3-5
與10.3-4類似
- 前言
- 第6章 堆排序
- 6-3 Young氏矩陣
- 第7章 快速排序
- 第8章 線性時間排序
- 第9章 排序和順序統計學算法導論
- 算法導論 9.1-1 求第二小元素
- 第10章 10.1 棧和隊列
- 第10章 10.2 鏈表
- 第10章 10.3 指針和對象實現
- 第10章 10.4 有根樹的表示
- 第11章-散列表
- 第12章 二叉查找樹
- 第13章 紅黑樹
- 第14章 14.1 動態順序統計
- 算法導論-14-1-最大重疊點
- 算法導論-14-2-Josephus排列
- 第14章 14.3 區間樹
- 第15章 動態規劃
- 第16章 貪心算法
- 第18章 B樹
- 第19章-二項堆
- 第20章 斐波那契堆
- 第21章 用于不相交集合的數據結構
- 第22章 圖的基本算法 22.1 圖的表示
- 第22章 圖算法 22.2 廣度優先搜索
- 第22章 圖算法 22.3 深度優先搜索
- 第22章 圖的基本算法 22.4 拓撲排序
- 第22章 圖的基本算法 22.5 強聯通分支