順序表的操作

2021-08-28 22:53:09 字數 2002 閱讀 4399

定義標頭檔案

#define _crt_secure_no_warnings

#include #include ;

定義乙個頭結點的結構體

typedef struct seflist

list

建立順序表

list* create(int capacity)			//建立順序鍊錶

temp->capacity = capacity;

temp->length = 0;

temp->node = (list*)malloc(sizeof(int*)*capacity);

if (null == temp->node)

return temp;

}

插入乙個結點

int initnode(list* list,int pos,list* node)			//插入結點

if (list->capacity == list->length)

if (pos >= list->length)

temp = list;

for (i = temp->length; i > pos; i-- )

temp->node[i] = (int) node;//將list*型別的node強制轉換為int型別

temp->length++;

return 0;

}

刪除指定結點

void deletenode(int pos, list* list)					//刪除節點

temp = tlist->node[pos];//要刪除的陣列元素

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

tlist->length--;

return temp;

}

輸出乙個順序表

list* putout(list* list)				//輸出順序鍊錶

printf("順序表的表容量為:%d\n表長為:%d\n", temp->capacity, temp->length);

printf("順序表為:");

for (i = 0; i < temp->length; i++)

return 0;

}

查詢某結點的下標

int sreachnode(list* list, list* node)			//查詢結點的下標

if (null == node)

for (i = 0; i < temp->length; i++) }

printf("沒有找到!");

return 0;

}

得到某下標對應的結點

int getnode(list* list, int pos)		//得到某下標對應的結點

if (null == temp)

if (temp->node[pos])

return 0;

}

清空表

void clear(list* list)						//清空表

temp = list;

temp->length = 0;

memset(temp->node, 0, (temp->length*sizeof(int*)));//將陣列元素全部賦值0

return 0;

}

銷毀表

void delete(list* list)						//銷毀表

temp = list;

if (null != temp->node)//先釋放陣列後釋放煉表頭節點

free(temp);

return 0;

}

順序表的操作

include include define n 1000 struct list void init list struct list p void scanf list struct list p,int e p size p arr p size e void delete list stru...

順序表的操作

程式要求 建立乙個順序表,使用者通過輸入個數和一組非遞減順序的數,即順序表按照非遞減順序排列,對順序表進行建立,刪除指定位置的數,查詢指定位置的數,插入乙個數字功能。程式 如下 include stdio.h include stdlib.h define listsize 100 typedef ...

順序表的操作

如圖所示,為順序表增加新元素111的三種方式 a.尾端加入元素,時間複雜度為o 1 b.非保序的加入元素 不常見 時間複雜度為o 1 c.保序的元素加入,時間複雜度為o n a.刪除表尾元素,時間複雜度為o 1 b.非保序的元素刪除 不常見 時間複雜度為o 1 c.保序的元素刪除,時間複雜度為o n...