動態順序表的基本實現

2022-03-08 03:24:49 字數 2102 閱讀 6976

#include#include#define list_init_size 100

#define listincrement 10

#define status int

#define overflow -1

#define ok 1

#define error 0

#define elemtype int

typedef struct

sqlist;

//比較函式

int equals(int a, int b)

else

}int cmpmax(int a, int b)

else

}int cmpmin(int a, int b)

else

} //初始化

status initlist(sqlist *l)

l->length = 0;

l->listsize = list_init_size;

return ok;

}//查詢符合條件的元素的位置

int locateelem(sqlist* l, int e, int(*pf)(int, int)) //獲取第乙個e元素的位置

else

}return 0;

}//得到指定位置元素的值

int getelem(sqlist* l, int i, int* e) //取第i個資料元素

else

}//插入

status listinsert(sqlist *l, int i,elemtype e)

if(l->length >= l->listsize)

l->elem = newbase;

l->listsize = l->listsize + listincrement;

}for(j = l->length-1; j >= i-1; ++j)

l->elem[i-1] = e;

l->length++;

return ok;

}//刪除

status listdelete(sqlist *l,int i,elemtype *e)

(*e) = l->elem[i-1];

for(; i < l->length; ++i)

l->length--;

return ok;

}//輸出列印

void listprint(sqlist l)

else if(!l.length)

else

}printf("\n");

}//刪除最小

void deletemin(sqlist *l)

min = l->elem[0];

tag = 0;

for(i = 1; i < l->length; ++i)

}listdelete(l, tag + 1, &e);

}void destroy_list(sqlist *l)

l->length = 0;

}void clear_list(sqlist *l)

int main(void)

; initlist(&l);

for (i = 1; i <= 9; i++)

printf("插入完成後 l = : ");

listprint(l);

listdelete(&l, 2, &e);

printf("刪除第 2 個後l = : ");

listprint(l);

deletemin(&l);

printf("刪除l中最小值後l = : ");

listprint(l);

deletemin(&l);

printf("刪除l中最小值後l = : ");

listprint(l);

deletemin(&l);

printf("刪除l中最小值後l = : ");

listprint(l);

destroy_list(&l);

listprint(l);

return 0;

}

動態順序表的實現

寫這篇部落格主要是講述一下動態順序表的實現,其中包含 列印 建立 銷毀 尾部插入 尾部刪除 頭部插入 頭部刪除 在順序表的pos位置上插入元素x 刪除順序表pos位置上的元素 順序表中查詢資料x,返回該元素在順序表中的位置 修改pos位置的資料 氣泡排序 選擇排序 查詢已排序順序表中的元素x 等操作...

動態實現順序表

順序表是在計算機記憶體中以 陣列的形式儲存的線性表,是指用一組位址連續的 儲存單元 依次儲存 資料元素 的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的 儲存單元中。下面來進行順序表的動態實現 標頭檔案 ifndef seqlist ...

實現動態順序表

標頭檔案seqlist.h中 pragma once include include typedef int datatype typedef struct seqlist seqlist 列印順序表 void printseqlist seqlist pseq printf n 增大容量 void...