定義標頭檔案
#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...