資料結構之 常用資料結構的建立(C語言)

2021-08-06 07:09:02 字數 1386 閱讀 4669

#define maxsize 20		//儲存空間初始分配量

typedef int elemtype; //elemtype型別根據實際情況而定,這裡假設為int

typedef struct

sqlist;//分號「;」不能忘記

順序儲存結構需要三個屬性:

1)儲存空間的起始位置:陣列data,它的儲存位置就是儲存空間的儲存位置。

2)線性表的最大儲存容量:陣列長度maxsize。

3)線性表的當前長度:length。

單鏈表中,我們在c語言中可用結構指標來描述

typedef int status;

typedef int elemtype; //elemtype型別根據實際情況而定,這裡假設為int

typedef struct node

node;

typedef struct node *chainlist; /* 定義鍊錶 */

/*初始化*/

status init(chainlist *head)

二叉鍊錶的節點結構定義

/*二叉樹的二叉鍊錶節點結構定義*/

typedef int telemtype; //elemtype型別根據實際情況而定,這裡假設為int

typedef struct binode /*節點結構*/

bitnode, *bitree;

/*二叉樹的建立*/

/*按前序輸入二叉樹中的節點值(乙個字元)*/

/*#表示空樹,構造二叉鍊錶表示二叉樹t。*/

void creatbitree(bitree *t)

else

}

棧的順序儲存結構定義:

/*棧的順序儲存結構定義*/

typedef int selemtype;

typedef struct

sqstack;

進棧操作push:

/*插入元素e為新的棧頂元素*/

#define error 0;

#define ok 1;

typedef int selemtype, status;

status push(sqstack *s, selemtype e)

出棧操作pop:

/*若棧非空,則刪除s的棧頂元素,用e返回其值,並返回ok;否則返回error*/

status pop(sqstack *s, selemtype *e)

C 常用資料結構

資料結構 型別及備註 插入和刪除 查詢array 順序儲存的線性表 定長 不支援 這裡的插入與刪除指會更改表長的行為 o n linkedlist 鏈式儲存的線性表 不定長 o 1 o n list 順序儲存的線性表 不定長 動態擴容 o n 結尾則是o 1 o n stack 棧 不定長 動態擴容...

C 常用資料結構

array arraylist list linkedlist queue stack dictionary 陣列array特點 儲存在連續的記憶體上 元素型別相同 直接通過下表訪問 建立時需要指定陣列長度 根據下標索引元素並進行相關操作速度快,但插入或刪除元素比較麻煩 arraylist 非泛型集...

常用資料結構

文章參考 資料結構 c語言版 嚴蔚敏 線性表 有頭有尾,中間節點有前驅有後繼 定義 一組連續的儲存單元依次儲存線性表的資料元素。定長順序表 typedef struct sqlist psqlist 不定長順序表 typedef struct dsqlist dsqlist,pdsqlist 單鏈表...