靜態順序表的初始化,基本操作及冒泡,選擇排序應用

2021-08-28 06:28:11 字數 4046 閱讀 3019

靜態順序表主要掌握順序表的基本操作和初始化順序表,是初學資料結構者遇見的第一種儲存結構,後續如果有什麼想法的話會持續更新…

#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...