#include// 順序表(動態分配記憶體)2010-04-16 11:29:34
#include
#include
//#include
#include// 用來清屏
using namespace std;
const int list_size = 1000;
const int list_size = 10;
typedef struct
list;
/*void empty(list &l)
//構造空表
*/int initlist(list &l)
l.len = 0;
l.listsize = list_size;
return 1;
}//構造順序表
void creat(list &l)
//建立順序表
int length(list l)
//求順序表的長度
int get(list &l, int n)
int *p;
p = &l.elem[n- 1];
return *p;
//return l.elem[n- 1];
}//取表中第n個元素
int lacate(list l, int x)
//查詢順序表中為x的元素,返回其下表,沒有的話返回-1;
int insnode(list &l, int i, int x)
if(l.len >= l.listsize)
l.elem = newbase;
l.listsize += list_size;
}if(l.len + 1 == i)
int *q, *p;
q = &l.elem[i -1];
for(p = &l.elem[l.len - 1]; p>= q; p--)
*(p + 1) = *p;
*q = x;
l.len++;
return 1;
/*if(i < 0 || i > l.len)
int j;
l.len++; //這裡不要忘記了加
for(j = l.len; j >= i; j--)
l.elem[j] =l.elem[j - 1];
l.elem[i - 1] = x;
return 1;
*/}//在順序表位置為i的地方插入x
int delnode(list &l, int i, int &e)
int *p, *q;
p = &l.elem[i - 1];
e = *p;
q = l.elem + l.len - 1;
for(p; p < q; p++)
*p = *(p + 1);
l.len--;
return 1;
/*if(i < 0 || i > l.len)
int j;
for(j = i; j < l.len; j++)
l.elem[j - 1] = l.elem[j];
l.len--;
return 1;
*/}//刪除順序表位子為i 的元素
void display(list l)
//顯示順序表
void fun()
int main()
*/if(a == 2)
else if(a == 3)
else if(a == 4)
else if(a == 5)
else if(a == 6)
else if(a == 7)
else if(a == 8)
else if(a == 9)
else if(a == 10)
else }}
順序表 動態分配
儲存空間是程式執行過程中通過動態儲存語句分配的,一旦空間佔滿,就另外開闢一塊更大的儲存空間,用以替換原來的儲存空間。c語言呼叫stdlib庫,使用malloc,free函式。c 使用new,delect。include include define initsize 10 using namespa...
記憶體動態分配
陣列的元素儲存於記憶體中連續的位置上。當乙個陣列被宣告時,它所需要的內存在編譯時就被分配。但是,你也可以使用動態記憶體分配在執行時為它分配記憶體。malloc所分配的是一塊連續的記憶體。例如,如果請求它分配100個位元組的記憶體,那麼它實際分配的記憶體就是100個連續的位元組,並不會分開位於兩塊或多...
動態分配記憶體
動態記憶體分配即分配記憶體大小在執行時才確定,一般在堆中分配。c語言動態記憶體分配相關的函式。include void malloc size t size malloc的使用比較直接,乙個成功的malloc呼叫返回分配的size大小的記憶體的指標。失敗時返回null並將錯誤 置為enomem。教材...