表指標實現。第二種方法是使用訪問列表,模擬指標。
在我的理解中學習,它是建立乙個節點陣列,模擬儲存裝置,然後從中分配記憶體和釋放記憶體。
但實際的記憶體沒有被釋放~
下面的**直接附著:
//
// main.cpp
// cursorlist
//// created by alps on 14-7-27.
//#include #define cursorspace 100
#define elementtype int
using namespace std;
typedef int ptrtonode;
typedef ptrtonode list;
typedef ptrtonode position;
void initializecursorlist(void);
list makeempty(list l);
int isempty(list l);
int islast(list l, position p);
void insert(list l, position p, elementtype x);
void delete(list l, elementtype x);
position find(list l, elementtype x);
position findprevious(list l, elementtype x);
void deletelist(list l);
struct node;
struct node cursorlist[cursorspace];
int isempty(list l)
int islast(list l, position p)
void initializecursorlist(void)
cursorlist[cursorspace - 1].next = 0;
}position cursoralloc()
void cursorfree(position p)
position find(list l, elementtype x)
if (p == 0)
return p;
}position findprevious(list l, elementtype x)
return p;
}void delete(list l, elementtype x)
void insert(list l, position p, elementtype x)
void deletelist(list l)
tmp = p;
}cursorlist[l].next = 0;
}void print(list l)
printf("\n");
}int main(int argc, const char * ar**)
演算法是沒有問題。之後,我每乙個功能考完試~
用指標實現表
include stdafx.h include iostream.h templateclass list template class node template class list list bool empty const int size const bool retrieve int ...
表的指標實現
實現表的另一種方法是用指標將儲存表元素的那些單元依次串聯在一起。這種方法避免了在陣列中用連續的單元儲存元素的缺點,因而在執行插入或刪除運算時,不再需要移動元素來騰出空間或填補空缺。然而我們為此付出的代價是,需要在每個單元中設定指標來表示表中元素之間的邏輯關係,因而增加了額外的儲存空間的開銷。為了將儲...
鄰接表實現PRIM演算法 C
參考張憲超老師 資料結構 演算法及應用 原理 g 是乙個連通的帶權無向圖。prim演算法通過不斷地增加生成樹的頂點來得到最小生成樹。在演算法的任一時刻,一部分頂點已經新增到生成樹的頂點集合中,而其餘頂點尚未加到生成樹中。此時,prim演算法通過選擇邊,使得的權值是所有u 起點 在生成樹中,但v 終點...