順序表:用
一段位址連續的儲存單元
依次儲存資料元素的線性結構。
test.h
#pragma once
#include #include #include #define max_size 10
typedef int datatype;
typedef struct seqlist
seqlist;
void init(seqlist *seq);
void destory(seqlist *seq);
void print(seqlist *seq); //效率
//增刪查改
void pushback(seqlist *seq, datatype x);
void popback(seqlist *seq);
void pushfront(seqlist *seq, datatype x);
void popfront(seqlist *seq);
//任意位置插入刪除
void insert(seqlist *seq, size_t pos, datatype x);
void remove(seqlist *seq, datatype x);
void erase(seqlist *seq, size_t pos);
int find(seqlist *seq, datatype x); //查詢資料對應的下標
void removeall(seqlist *seq, datatype x);
//排序演算法
void bubblesort(seqlist *seq);
void selectsort(seqlist *seq);
void insertsort(seqlist *seq);
size_t binarysearch(seqlist *seq, datatype x);
test.cpp
#include "test.h"
void init(seqlist *seq)
void destory(seqlist *seq)
void pushback(seqlist *seq, datatype x)
seq->array[seq->size] = x;
seq->size++;
}void popback(seqlist *seq)
seq->size--;
}void pushfront(seqlist *seq, datatype x)
seq->size++;
for (int i = seq->size; i > 0;i--)
seq->array[0] = x;
}void popfront(seqlist *seq)
for (size_t i = 0; i < seq->size; i++)
seq->size--;
}void print(seqlist *seq)
printf("\n");
}void insert(seqlist *seq, size_t pos, datatype x)
if (pos < 0 || pos >seq->size)
seq->size++; //得畫圖
for (size_t i = seq->size; i > pos; i--)
seq->array[pos] = x;
}void remove(seqlist *seq, datatype x)
int i = find(seq, x);
if (x, -1)
}void erase(seqlist *seq, size_t pos)
for (size_t i = pos; i < seq->size; i++)
--seq->size;
}int find(seqlist *seq, datatype x)
} return -1;
}//void removeall(seqlist *seq, datatype x)
//// return;
//}void removeall(seqlist *seq, datatype x)
} seq->size -= i - j;
}void swap(int *a, int *b)
void bubblesort(seqlist *seq) //原理
} }}void selectsort(seqlist *seq) //一次選 最大 最小
swap(&seq->array[begin], &seq->array[min_index]);
if (begin == max_index)
begin++;
swap(&seq->array[end], &seq->array[max_index]);
end--; }}
void insertsort(seqlist *seq)
} }}size_t binarysearch(seqlist *seq,datatype x)
else if(seq->array[mid] > x)
else
return mid;
} return -1;
}
main.cpp
#include "test.h"
void test1()
int main()
//void test2()
//
靜態順序表
在書上看到的,學習學習。題目 建立乙個靜態的順序表存放整數,大小為10,完成以下操作。1 輸入6個整數,列印出順序表中的內容,並顯示表中的剩餘的空間個數。2 在順序表中的第3個位置插入元素0,列印出順序表中的內容,並顯示表中剩餘的空間個數。3 再試圖插入表中第11個位置整數0,程式提示超出範圍。4 ...
靜態順序表
最近在學習資料結構的單鏈表部分,於是寫了乙個靜態順序表做練習。實現了對其初始化 新增 更改 刪除等功能的實現。seqlist.h pragma once define seq list ifdef seq list include include include define maxsize 100...
靜態順序表
順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。include stdio.h include stdlib.h elemtyp...