資料結構 c語言

2022-09-19 00:39:11 字數 2953 閱讀 6779

目錄順序表樹圖

#ifndef status_h

#define status_h

#include #define true 1

#define false 0

#define ok 1

#define error 0

#ifndef overflow

#define overflow -2

#endif

#ifndef null

#define null ((void*)0)

#endif

typedef int status;

#endif

#define list_inc 10

typedef int elemtype;

//順序表結構體

typedef struct sqlist;

//順序表函式

//初始化順序表

status initlist_sq(sqlist *l);

//清空順序表

void clearlist_sq(sqlist *l);

//銷毀順序表

void destroylist_sq(sqlist *l);

//判斷是否為空

status listempty_sq(sqlist *l);

//返回表長

int listlength_sq(sqlist *l);

//用e接收表中第i個元素

status getelem_sq(sqlist *l, int i, elemtype *e);

//返回表中首個與e滿足compare關係的元素位置

int locateelem_sq(sqlist *l, elemtype e, status(compare)(elemtype, elemtype));

//返回e的前驅

status priorelem_sq(sqlist *l, elemtype cur_e, elemtype *pre_e);

//返回e的後繼

status nextelem_sq(sqlist *l, elemtype cur_e, elemtype *next_e);

//在位置i,插入e

status listinsert_sq(sqlist *l, int i, elemtype e);

//在位置i,刪除,並返回e

status listdelete_sq(sqlist *l, int i, elemtype *e);

//列印順序表

void listprint_sq(sqlist *l, void (visit)(elemtype));

#endif

#include "sqlist.h"

//初始化順序表

status initlist_sq(sqlist* l)

//清空順序表

void clearlist_sq(sqlist *l)

//銷毀順序表

void destroylist_sq(sqlist* l)

//判斷表是否為空

status listempty_sq(sqlist *l)

//返回表長

int listlength_sq(sqlist *l)

//用e接收表中第i個元素

status getelem_sq(sqlist *l, int i, elemtype *e)

//返回表中首個與e滿足compare關係的元素位置

int locateelem_sq(sqlist *l, elemtype e, status(compare)(elemtype, elemtype))

//返回e的前驅

status priorelem_sq(sqlist *l, elemtype cur_e, elemtype *pre_e)

}return false;

}//返回e的後繼

status nextelem_sq(sqlist *l, elemtype cur_e, elemtype *next_e)

return false;

}//在位置i插入e

status listinsert_sq(sqlist* l, int i, elemtype e)

q = &(*l).elem[i - 1];

for (p = &(*l).elem[(*l).length - 1]; p >= q; p--)

*(p + 1) = *p;

*q = e;

(*l).length++;

return true;

}//在位置i刪除e

status listdelete_sq(sqlist* l, int i, elemtype* e)

//列印順序表

void listprint_sq(sqlist* l, void (visit)(elemtype))

#include #include #include "sqlist.h"

#include "status.h"

status cmpgreater(elemtype a, elemtype b);

void printelem(elemtype e);

int main()

elemtype t;

for (int i = 50; i <= 100; i++)

listprint_sq(&list, printelem);

destroylist_sq(&list);

return 0;

}status cmpgreater(elemtype a, elemtype b)

void printelem(elemtype e)

資料結構 C語言 資料結構 查詢

二 查詢演算法的效能分析 三 基於線性表的查詢 四 基於樹的查詢 五 基於雜湊表的查詢 文章索引 分類typedef struct elemtype typedef struct sstable 從表中第一條 最後一條記錄開始,逐個進行記錄的關鍵字與給定值的比較,若某個記錄的關鍵字和給定值比較相等,...

C語言 資料結構

指標一維陣列 指標陣列 陣列指標 malloc函式 字元陣列 結構體聯合體 報錯問題 亂碼了,阿肆的github,這裡顯示正常,都是傳的md檔案。include include int main void ide根據檔案字尾選擇編譯器,cpp呼叫c 編譯器 c程式進行編譯是以源程式檔案為物件進行的,...

C語言資料結構

1 鍊錶的高階操作 void reverse struct node l p1 next tailp l next p1 鍊錶的反轉 2 鏈式儲存結構的棧 鏈棧 struct snode 棧的節點定義 struct stack 棧的定義 struct stack initstack 棧的初始化 bo...