靜態順序表實現增刪改查的所有**~
#pragma once
#include #include #include #include typedef int datatype;
#define max_size (100)
typedef struct seqlist seqlist;
// 初始化
void seqlistinit(seqlist *psl)
// 銷毀
void seqlistdestroy(seqlist *psl)
// 尾插
void seqlistpushback(seqlist *psl, datatype data)
// 頭插
void seqlistpushfront(seqlist *psl, datatype data)
#endif
#if 0
// 1.2 以要搬到的位置做迴圈的指示
int space;
for (space = psl->size; space > 0; space--)
#endif
#if 3
// 2. 以迴圈次數做指示
int i;
for (i = 0; i < psl->size; i++)
#endif
psl->array[0] = data;
psl->size++;
}// 根據下標插入
void seqlistinsert(seqlist *psl, int pos, datatype data)
psl->array[pos] = data;
psl->size++;
}// 尾刪
void seqlistpopback(seqlist *psl)
// 頭刪
void seqlistpopfront(seqlist *psl)
psl->size--;
}// 根據下標刪除
void seqlisterase(seqlist *psl, int pos)
#endif
#if 1
// 以 要搬運的資料下標作為循#環指示
int p; // 要搬運的資料下標
for (p = pos + 1; p < psl->size; p++)
#endif
psl->size--;
}// 根據資料刪除,只刪除遇到的第乙個
void seqlistremove(seqlist *psl, datatype data)
}// 根據資料刪除,刪除所有遇到的
void seqlistremoveall(seqlist *psl, datatype data)
seqlisterase(psl, pos);
}#endif
while ((pos = seqlistfind(psl, data)) != -1)
/* while (size)
} */
#endif
#if 0
datatype *newarray = (datatype *)malloc(sizeof(datatype)* psl->size);
assert(newarray);
int i, j, k;
for (i = 0, j = 0; i < psl->size; i++)
} psl->size = j;
// 把資料從 newarray 放回到 array
for (k = 0; k < psl->size; k++)
free(newarray);
#endif
int i, j;
for (i = 0, j = 0; i < psl->size; i++)
} psl->size = j;
}// 根據下標更新
void seqlistupdate(seqlist *psl, int pos, datatype data)
// 查詢
// 返回遇到的第乙個下標,如果沒有遇到,返回 -1
int seqlistfind(seqlist *psl, datatype data)
} // 沒找到
return -1;
}void swap(datatype *a, datatype *b)
void selectop(seqlist *psl)
if (psl->array[i] > psl->array[maxindex])
} // 到這裡後,minindex 就是找到的最小數的下標
// 到這裡後,maxindex 就是找到的最大數的下標
swap(psl->array + minindex, psl->array + minspace);
if (minspace == maxindex)
swap(psl->array + maxindex, psl->array + maxspace);
minspace++;
maxspace--; }}
void seqlistprint(seqlist *psl)
printf("\n");
}void testseqlist()
動態順序增刪改查的所有**~
#pragma once
#include #include #include #define capacity (2)
typedef int datatype;
typedef struct seqlistdynamic seqlistd;
//初始化
void seqlistdinit(seqlistd *psld)
//銷毀
void seqlistddestroy(seqlistd * psld)
void expandifrequired(seqlistd *psld)
//肯定空間不夠
//1.容量變大
//2.開闢空間
//3.將老資料寫進新空間
//4.釋放老空間
//5.將新空間掛起
//realloc
//夥伴演算法
psld->capacity *= 2;
datatype *newarray = (datatype *)malloc(sizeof(datatype)*psld->capacity);
int i;
for (i = 0; i < psld->size; i++)
free(psld->array);
psld->array = newarray;
}void seqlistdpushback(seqlistd *psld, datatype data)
//頭插
void seqlistdpushfront(seqlistd *psld, datatype data)
psld->array[space]= data;
psld->size++;
}void charu(seqlistd *psld, int pos, datatype data)
psld->array[pos] = data;
psld->size++;
}//按下標插
void seqlistdinsert(seqlistd *psld,int pos, datatype data)
psld->array[pos]=data;
psld->size++;*/
}//列印
void seqlistdprint(seqlistd *psld)
}void testseqlistd()
動態順序表的增刪改查
順序表還是相對於比較簡單的資料結構,所謂動態,不過是在初始化時 賦予動態空間,所以說,就直接看 了。標頭檔案 pragma once sequence list define crt secure no warnings 1 include include include include typed...
資料結構 動態順序表增刪查改實現
一 概念及機構 順序變是一種線性表,首先介紹線性表的概念 線性表 線性表 linear list 是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構常見的線性表 順序表 鍊錶 棧 佇列 字串 線性表在邏輯上是線性結構,也就說是連續的一條直線。但是在物理結構上並不一定是連續...
資料結構 順序表 增刪查改
include include include include list.h 函式名 createlist 函式功能 建立線性表 引數 無 list createlist void return plist 函式名 destroylist 函式功能 銷毀線性表 函式返回值 無。void destro...