資料結構順序表定義和實現

2021-06-29 11:21:35 字數 2186 閱讀 5734

首先是順序表的抽象資料型別的定義

//  file: sequence.h

#define maxsize 100 // 定義順序表最大的容量為100

typedef

int datatype; //給int 取了個別名叫datatype

typedef

struct sequence;

接下來是它的大部分演算法實現,當然我增加了氣泡排序:

// file: sequence.c

#include "sequence.h"

#include

#include

/****/

/* 順序表是線性儲存,所以下面涉及到的第i個元素或第position位置,i和position取值範圍是,當然這只是我理解的一種

*/// 用c語言實現如下演算法,實現如下函式(也叫方法)前,首先最好宣告下

----------

void init(sequence* sequ); // 初始化順序表

void display(sequence sequ); // 遍歷

int isempty(sequence sequ); // 判斷是否為空,空為1,否則為0

int find(sequence sequ, datatype x);

int get(sequence sequ, int i);

void insert(sequence* sequ, int position, datatype x);

void dele(sequence* sequ, int position); //

void sort_sequence(sequence* sequ);

void bubble_sort(sequence* sequ); // 氣泡排序

void init(sequence* sequ)

sequ->arr[sequ->size] = x;

sequ->size = sequ->size + 1;

}void display(sequence sequ)

printf("the sequence is:\t");

for(i = 0; i < sequ.size; i++)

}int isempty(sequence sequ)

int find(sequence sequ, datatype x)

while(i < sequ.size && sequ.arr[i] != x)

return (i < sequ.size ? i : -1);

}int get(sequence sequ, int i)

else

return sequ.arr[i];

}void insert(sequence* sequ, int position, datatype x)

sequ->arr[position] = x;

sequ->size++;

}void

delete(sequence* sequ, int position)

sequ->size--;

}void sort_sequence(sequence* sequ)

void bubble_sort(sequence* sequ)

}}

下面是順序表實現方式:

#include 

#include "sequence.c"

#define max 8

int main()

; sequence sequ; // line 1

sequence* sequ_pointer = &sequ; // line 2

// line 2的**可以不用的,那傳遞順序表指標時就用&sequ,經檢驗使用指標變數sequ_pointer比直接傳位址值&sequ更節約時間,這就是使用指標變數的的好處吧

init(sequ_pointer);

for(i = 0; i < max; i++)

display(sequ);

sort_sequence(sequ_pointer);

sort_sequence(sequ_pointer);

return

0; }

資料結構 順序表的定義及python實現

class seqlist object def init self,size 50 初始化線性表 定義線性表的最大長度為50 self.max size self.num 0 self.data none self.max def is empty self 判斷線性表是否為空 return se...

資料結構(順序表的實現)

include define max len 100 容器的最大存量 using namespace std 各種資料結構,無非 建構函式 初始化 什麼資料型別 插入 插入的位置和插入的元素 刪除 刪除那個元素 查詢 按值查詢還是按址查詢以及查詢的方向 遍歷 下標遍歷和迭代器遍歷 cout 順序表 ...

資料結構 順序表的實現

目錄 一 順序表 二 順序表對應功能的 示例 順序表所需要實現的一般功能 順序表的優缺點 define size 20 typedef struct sequencelist list list initlist bool isempty list sl bool isfull list sl bo...