順序表(動態分配記憶體

2021-05-22 06:30:58 字數 1924 閱讀 8175

#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。教材...