資料結構 線性結構 順序表

2021-09-22 01:35:28 字數 2868 閱讀 8493

什麼是線性結構?

線性結構是n個具有相同特性的資料元素的有限序列,也稱為線性表。

線性結構中都包含什麼內容?

線性結構是一種在實際中廣泛使用的資料結構,常見的線性結構:順序表、鍊錶、棧、佇列、字串…

什麼是順序表?順序表的分類?

順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪查改.

動態順序表

順表要實現的功能:

#pragma once

#include #include #include #include typedef int datatype;

typedef struct seqlist seqlist,*pseq;

typedef struct seqlist seqlist;

typedef struct seqlist* pseq;

#define size 5

// 順序表的初始化

void seqlistinit(pseq ps, int capacity);

// 在順序表的尾部插入值為data的元素

void seqlistpushback(pseq ps, datatype data);

// 刪除順序表最後乙個元素

void seqlistpopback(pseq ps);

// 在順序表的頭部插入值為data的元素

void seqlistpushfront(pseq ps, datatype data);

// 刪除順序表頭部的元素

void seqlistpopfront(pseq ps);

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

void seqlistinsert(pseq ps, int pos, datatype data);

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

void seqlisterase(pseq ps, int pos);

// 在順序表中查詢值為data的元素,找到返回該元素在順序表中的下標,否則返回-1

int seqlistfind(pseq ps, datatype data);

// 檢測順序表是否為空,如果為空返回非0值,非空返回0

int seqlistempty(pseq ps);

// 返回順序表中有效元素的個數

int seqlistsize(pseq ps);

// 返回順序表的容量大小

int seqlistcapacity(pseq ps);

// 將順序表中的元素清空

void seqlistclear(pseq ps);

// 刪除順序表中第乙個值為data的元素

void seqlistremove(pseq ps, datatype data);

// 銷毀順序表

void seqlistdestroy(pseq ps);

// 順序表的擴容

void checkcapacity(pseq ps);

程式**:

#include "sqelist.h"

void seqlistprint(pseq ps)

printf("\n");

}void seqlistinit(pseq ps, int capacity)

ps->capacity = capacity;

ps->size = 0;

}void seqlistpushback(pseq ps,datatype data)

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

++ps->size;

}void seqlistpopback(pseq ps)

--ps->size;

}void seqlistpushfront(pseq ps, datatype data)

for (int i = ps->size; i > 0; --i)

ps->arr[0] = data;

++ps->size;

}void seqlistpopfront(pseq ps)

for (int i = 0; i < ps->size; ++i)

--ps->size;

}void seqlistinsert(pseq ps, int pos, datatype data)

if (ps->size == ps->capacity)

for (int i = ps->size; i > pos; --i)

ps->arr[pos] = data;

++ps->size;

}void seqlisterase(pseq ps, int pos)

for (int i = pos; i < ps->size - 1; ++i)

--ps->size;

}int seqlistfind(pseq ps, datatype data)

} return -1;

}int seqlistempty(pseq ps)

else

}int seqlistsize(pseq ps)

int seqlistcapacity(pseq ps)

void seqlistremov(pseq ps, datatype data)

void seqlistclear(pseq ps)

void seqlistdestroy(pseq* ps)

void checkcapacity(pseq ps)

ps->capacity += size;

}int main()

資料結構 A 線性結構之順序表

1.線性表 線性表 linear list 是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表 鍊錶 棧 佇列 字串。線性表在邏輯上是線性結構,也就說是連續的一條直線。但在物理結構上並不一定是連續的,線性表在物理上儲存時,通常以陣列和鏈式結構的形式儲...

資料結構 順序線性表

順序線性表標頭檔案 ifndef vzhangseqlist define vzhangseqlisttypedef void seqlist typedef void seqlistnode 建立線性表 declspec dllexport 如果在動態庫中定義標頭檔案 這句話不可以缺少 不然會報錯...

資料結構 線性表 順序儲存結構

1.線性表定義 線性表 list 零個或多個資料元素的有限序列。關鍵知識點 1.首先它是乙個序列,元素之間室友順序的 2.線性表強調的是有限的,元素個數是有限的 3.在較複雜的線性表中,乙個資料元素可以由若干個資料項組成。其數學定義 若將線性表標記為 a1,ai 1 ai ai 1 a n 則表中的...