靜態順序表

2021-08-29 07:36:10 字數 2865 閱讀 3610

順序表有靜態順序表和動態順序表,我主要用靜態順序表來實現一些操作

#define _crt_secure_no_warnings

#ifndef _seqlist__h_

#define _seqlist__h_

#include "stdio.h"

#include "string.h"

#include "assert.h"

#define max 10

typedef int datatype;

typedef struct seqlist

seqlist, *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(pseqlist pseq, datatype data);

void removeall(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 printseqlist(pseqlist pseq);

#endif

#include "seqlist.h"

//初始化

void initseqlist(pseqlist pseq)

//尾部插入

void pushback(pseqlist pseq, datatype data)

pseq->seq[pseq->size] = data;

pseq->size++;

}//尾部刪除

void popback(pseqlist pseq)

//頭部插入

void pushfront(pseqlist pseq, datatype data)

pseq->seq[0] = data;

pseq->size++;

}//頭部刪除

void popfront(pseqlist pseq)

pseq->size--;

}//查詢指定元素

int find(pseqlist pseq, datatype data)

return -1;

}//指定位置插入

void insert(pseqlist pseq, int pos, datatype data)

pseq->seq[pos] = data;

pseq->size++; }}

//刪除指定位置元素

void erase(pseqlist pseq, int pos)

pseq->size--;

}//刪除指定元素

void remove(pseqlist pseq, datatype data)

pseq->size--;

}//刪除所有的指定元素

void removeall(pseqlist pseq, datatype data) }}

//返回順序表的大小

int size(pseqlist pseq)

//判斷順序表是否為空

int empty(pseqlist pseq)

//交換

void swap(datatype* a, datatype* b)

//氣泡排序

void bubblesort(pseqlist pseq)

} }}//選擇排序

void selectsort(pseqlist pseq)

if (count != i)

swap(&pseq->seq[count], &pseq->seq[i]); }}

//選擇排序的優化

void selectsortop(pseqlist pseq)

if (min!=left)

swap(&pseq->seq[left], &pseq->seq[min]);

if (max != right)

}}//二分查詢

int binarysearch(pseqlist pseq, datatype data)

return -1;

}//二分查詢遞迴寫法

int binarysearch_r(pseqlist pseq, int left, int right, datatype d)

//列印

void printseqlist(pseqlist pseq)

printf("\n");

}

靜態順序表

在書上看到的,學習學習。題目 建立乙個靜態的順序表存放整數,大小為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...