資料結構靜態順序表

2021-08-12 00:14:45 字數 2703 閱讀 5465

#define max_size 10

typedef int datatype;

struct seqlist

以上**,就是建立乙個順序表,其中seqlist是整個順序表的空間而size是順序表中元素的個數。

接下來我將用靜態順序表來實現尾插,頭插,任意插入資料,尾刪,頭刪等

標頭檔案:

#ifndef __sep__list__

#define __sep__list__

#define _crt_secure_no_warnings 1

#include#include

#define max_size 10

typedef int datatype;

typedef struct seqlist

seqlist,*pseqlist;

//初始化順序表

void initseqlist(seqlist* seqlist);

//在順序表中尾插元素data

void pushback(seqlist* seqlist, datatype data);

//將順序表的尾部元素丟擲

void popback(seqlist* seqlist);

//頭插data

void pushfront(seqlist* pseqlist, datatype data);

//頭刪

void popfront(seqlist* pseqlist);

//查詢data,返回該元素的順序表的位置

int find(seqlist* pseqlist, datatype data);

//在順序表的pos的位置插入元素

void insert(seqlist* pseqlist, size_t pos, datatype data);

//刪除順序表pos位置的元素

void erase(seqlist* pseqlist, size_t pos);

//移除順序表中值為data 的值

void remove(seqlist* pseqlist, datatype data);

//移除順序表中所有值為data 的值

void removeall(seqlist* pseqlist, datatype data);

#endif

函式實現部分

#include "seqlist.h"

void initseqlist(seqlist* seqlist)

void pushback(seqlist* seqlist, datatype data)

seqlist->arr[seqlist->size] = data;

seqlist->size++;

}void popback(seqlist* seqlist)

seqlist->size--;//此時順序表中元素沒有被真正刪除,只是使得pop的元素無效

}void pushfront(seqlist* pseqlist, datatype data)

for (; index > 0; index--)

pseqlist->arr[index] = data;

pseqlist->size++;

} void popfront(seqlist* pseqlist)

for (; index < pseqlist->size; index++)

pseqlist->size--;

} int find(seqlist* pseqlist, datatype data)

} return -1;//位置不會是負數,當返回-1時,知道順序表中沒有想要的資料

}void tnsert(seqlist* pseqlist, size_t pos, datatype data)

if (max_size == pseqlist->size)

for (; index >= pos; index--)

pseqlist->arr[index] = data;

pseqlist->size++;

}void erase(seqlist* pseqlist, size_t pos)

for (; index < pseqlist->size - 1; index++)

pseqlist->size--;

}void remove(seqlist* pseqlist, datatype data)

pseqlist->size--;

return;

} }}void removeall(seqlist* pseqlist, datatype data);

pseqlist->size--;

index--; }}

}

測試部分

#include "seqlist.h"

seqlist seqlist;

//尾插尾刪

void testfun1()

//測試頭插頭刪

void testfun2()

//測試在任意位置插入刪除data

void testfun3()

//測試移除data

void testfun3()

資料結構 靜態順序表

本篇全部 都在linux系統下完成 用一段位址連續的單元依次儲存資料元素的線性結構,順序表又分為靜態順序表和動態順序表 首先建立乙個結構體seqlist,在結構體中我們定義了乙個陣列seqlist,用來存放資料,以及乙個無符號整形變數size,用來控制順序表有效資料的個數。即我們通過乙個簡單的陣列實...

資料結構靜態順序表

順序表 用一段位址連續儲存單元依次儲存資料元素的線性結構 pragma once 防止標頭檔案重複包含 define max size 10 include include include 實現基於靜態陣列的順序表的以下基本操作 首先先定義乙個結構體型別seqlist arr size 有效的元素個...

資料結構 靜態順序表

資料型別的定義 typedef int datatype typedef struct seqlist seqlist,pseqlist 建立變數的初始化和銷毀 void initseqlist pseqlist ps void destroyseqlist pseqlist ps 順序表的列印 這...