靜態順序表是儲存在乙個連續的陣列中的,因此對其資料型別有乙個結構體宣告。
//尾插
void
seqpushback(seqlist* pseq, datatype x)
pseq->_a[pseq->_size++] = x;
}//尾刪
void
seqpopback(seqlist* pseq)
//頭插
void seqpushfront(seqlist* pseq, datatype x)
end = pseq->_size - 1;
while (end>=0)
pseq->_a[0] = x;
pseq->_size++;
}//頭刪
//任意位置的插入
void seqinsert(seqlist* pseq, size_t pos, datatype x)
if (pos >= pseq->_size)
end = pseq->_size - 1;
while (end >= (int)pos)
pseq->_a[pos] = x;
pseq->_size++;
}//任意位置的刪除
void seqerase(seqlist* pseq, size_t pos)
begin = pos;
while (begin
<= pseq->_size)
pseq->_size--;
}
//查詢x 找到返回下標 未找到返回-1
int seqfind(seqlist pseq, datatype x)
begin++;
}return -1;
}
//修改
void seqat(seqlist* pseq, size_t pos, datatype x)
pseq->_a[pos] = x;
}
//從小到大排序
//使用冒泡法排序
void bubblesort(seqlist* pseq)
begin++;
}finish--;
}}//資料交換
const void swap(datatype *d1, datatype *d2)
//從大到小排序
//使用二元選擇排序方式
void selectsort(seqlist* pseq)
if (pseq->_a[i] > pseq->_a[max])
i++;
}swap(&pseq->_a[begin], &pseq->_a[max]);
if (min == begin)
min = max;
swap(&pseq->_a[end], &pseq->_a[min]);
begin++;
end--;}}
//二分法查詢
int _binarysearch(datatype* a, int begin, int end, datatype x)
else
if (a[mid] > x)
else
}int binarysearch(seqlist* pseq, datatype x)
c語言實現靜態順序表
標頭檔案如下 ifndef s l define s l include include include pragma warning disable 4996 define max size 10 typedef int datatype typedef struct seqlist seqlis...
C語言實現順序表 靜態
ifndef seqlist h define seqlist h typedef int datatype define max size 10 順序表的容量,可調整 typedef struct seqlist seqlist void seqlistinit seqlist pseq 初始化 ...
用C語言實現靜態順序表
用c語言實現順序表一般有靜態和動態兩種,靜態順序表在實行的過程中是直接定義乙個陣列,用他來存放資料,資料在順序表中的儲存是連續存放的,下面我將用三個函式檔案來實現乙個簡單的順序表,並且實現增 刪 查 逆序 排序等功能 seqlist.h 函式的宣告以及標頭檔案的引用 ifndef seqlist h...