靜態順序表主要掌握順序表的基本操作和初始化順序表,是初學資料結構者遇見的第一種儲存結構,後續如果有什麼想法的話會持續更新…
#include#include#include#include#define datatype int
#define max 50
typedef struct seqlist
seq, *pseqlist;
//初始化
void initseqlist(pseqlist pseq);
//尾部插入
void pushback(pseqlist pseq, datatype data);
//尾部刪除
void popback(pseqlist pseq);
//頭部插入
void pushfront(pseqlist pseq, datatype data);
//頭部刪除
void popfront(pseqlist pseq);
//查詢指定元素
int find(pseqlist pseq, datatype data);
//指定位置插入
void insert(pseqlist pseq, int pos, datatype data);
//刪除指定位置元素
void erase(pseqlist pseq, int pos);
//刪除指定元素
void remove_1(pseqlist pseq, datatype data);
void remove_2(pseqlist pseq, datatype data);
//刪除所有的指定元素
void remove_all(pseqlist pseq, datatype data);
//返回順序表的大小
int size(pseqlist pseq);
//判斷順序表是否為空
int empty(pseqlist pseq);
//氣泡排序
void bubblesort(pseqlist pseq);
//選擇排序
void selectsort(pseqlist pseq);
//選擇排序的優化
void selectsortop(pseqlist pseq);
//二分查詢
int binarysearch(pseqlist pseq, datatype data);
//二分查詢遞迴寫法
//int binarysearch_r(pseqlist pseq, int left, int right, datatype d);
//列印
void show(pseqlist pseq);
//反轉
void reverse(pseqlist seq);
void test_push_pop();//頭尾插入刪除測試
void test_find_insert_erase();//指定位置插入刪除測試
void test_remove_removeall();//刪除指定元素及刪除全部指定元素測試
void test_bubblesort();//氣泡排序測試
void test_selectsort();//選擇排序及其優化測試
#include "head.h"
void initseqlist(pseqlist seq)
void pushback(pseqlist seq, datatype data)
seq->arr[seq->sz] = data;
seq->sz++;
}void popback(pseqlist seq)
seq->sz--;
}void pushfront(pseqlist seq, datatype data)
for (i = seq->sz-1; i >= 0; i--)
seq->arr[0] = data;
seq->sz++;
}void popfront(pseqlist seq)
for (i = 0; i < seq->sz-1; i++)
seq->sz--;
}void show(pseqlist seq)
printf("\n");
return;
}//find
int find(pseqlist seq, datatype data)
return-1;
}//insert
void insert(pseqlist seq, int pos,datatype data)
for (int i = seq->arr[seq->sz-1]; i >= pos; i--)
seq->arr[pos] = data;
seq->sz++;
}//erase
void erase(pseqlist seq, int pos)
int i = 0;
for (i = pos; i < seq->sz - 1; i++)
seq->sz--;
}//remove 刪除指定元素
//void remove_1(pseqlist seq, datatype data)
//// seq->sz--;
// return;
// }
//
// }
//}void remove_2(pseqlist seq, datatype data)
//remove_all
void remove_all(pseqlist seq, datatype data)
erase(seq, i); }}
//返回順序表的大小
int size(pseqlist seq)
return i;
}//判斷順序表是否為空
int empty(pseqlist seq)
//氣泡排序//小到大
void bubblesort(pseqlist seq)
} }return;
}//選擇排序
void selectsort(pseqlist seq) }}
//選擇排序的優化
void selectsortop(pseqlist seq)
tmp = seq->arr[max];
seq->arr[max] = seq->arr[right];
seq->arr[right] = tmp;
if (min == right)
min = max;
tmp = seq->arr[min];
seq->arr[min] = seq->arr[left];
seq->arr[left] = tmp;
left++;
right--; }}
//二分查詢 --> 返回下標
int binarysearch(pseqlist seq, datatype data)
else if (data > seq->arr[mid])
else
return mid;
} return -1;
}//二分查詢遞迴寫法
int binarysearch_r(pseqlist seq, int left, int right, datatype d)
return -1;
}//反轉順序表
void reverse(pseqlist seq)
}
#include"head.h"
int main(void)
void test_push_pop()
void test_find_insert_erase()
void test_remove_removeall()
void test_bubblesort()
void test_selectsort()
靜態順序表的初始化以及插入刪除操作
在編寫之前首先需要說明,在使用c語言編寫時,在自定義外函式 也就是在main函式體之外 體內不能使用 符號以及 符號,取而代之的是 號以及 符號 1.首先是靜態順序表結構體的編寫 typedef struct sqlist 2.初始化 void initlist sqlist l 3.插入操作 bo...
關於初始化及初始化順序
首先,類的成員變數會被自動初始化,並且會在構造器被呼叫前發生,如下 public class testinitialization public static void main string args 如下 主類 public class staticinitialization 呼叫main之前...
靜態變數初始化順序
1.begin a a a a,from a的物件 a a,a.num01 0 a a,b.num02 0 a a,b.instance a null end a a begin a a a a,from a的物件 a a,a.num01 1 a a,b.num02 1 a a,b.instance...