常用資料結構

2021-10-22 18:28:55 字數 3416 閱讀 6014

前言:常用的資料結構主要包括陣列、鍊錶、串、棧、佇列、樹、圖

目錄

一、陣列

二、鍊錶

三、棧四、佇列

五、樹六、圖 總結

**實現:

int data[100];

int *arr = (int *)malloc(sizeof(int) * 100);

**實現:參考:

**實現 

**實現:

#include #include #include #define alloc_size 512

typedef int key_type;

typedef struct _queue_node

queue_node;

typedef struct _queue

queue;

int init_queue(queue *q)

q->front = q->rear = null;

q->queue_size = 0;

return 0;

}int destory_queue(queue *q)

iter = q->front;

while (null != iter)

return 0;

}int push_queue(queue *q, key_type key)

queue_node *node = (queue_node*)calloc(1, sizeof(queue_node));

if (null == node)

memset(node, 0, sizeof(queue_node));

node->key = key;

node->next = null;

if (null != q->rear)

else

q->queue_size ++;

return 0;

}int pop_queue(queue *q, key_type *key)

if (null == q->front)

if (q->front == q->rear)

else

q->queue_size --;

return 0;

}int is_empty_queue(queue *q)

return q->rear == null ? 1 : 0;

return 0;

}int size_queue(queue *q)

return q->queue_size;

}int main()

while (0 == is_empty_queue(&q))

destory_queue(&q);

}

樹是一種資料結構,它是由n(n>=1)個有限節點組成乙個具有層次關係的集合。把它叫做 「樹」 是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點:

每個節點有零個或多個子節點;

沒有父節點的節點稱為根節點;

每乙個非根節點有且只有乙個父節點;

除了根節點外,每個子節點可以分為多個不相交的子樹;

在日常的應用中,我們討論和用的更多的是樹的其中一種結構,就是二叉樹。

如圖所示:

**實現:

圖是由結點的有窮集合v和邊的集合e組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關係。

按照頂點指向的方向可分為無向圖和有向圖:

圖是一種比較複雜的資料結構,在儲存資料上有著比較複雜和高效的演算法,分別有鄰接矩陣 、鄰接表、十字鍊錶、鄰接多重表、邊集陣列等儲存結構,這裡不做展開,讀者有興趣可以自己學習深入。

**實現:

以上簡單介紹了常用的資料結構,其中包括陣列、鍊錶、棧、佇列、樹、圖等等,可以參考《大話資料結構》這本書學習,比較容易理解。

常用資料結構

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

常用資料結構

function delete array element arr,pos for i pos 1 i length 1 i array pop arr return arr pos 3 echo 除第位置上的元素後 echo implode delete array element arr,pos...

常用資料結構

基本資料結構 邏輯 集合,線性結構,樹形結構,圖形結構 基本資料結構 物理 順序,鏈式,索引,雜湊。陣列,棧,鍊錶,圖,雜湊表,對列,樹,堆 陣列 在記憶體中連續儲存多個元素的結構,在記憶體中的分配是連續,通過陣列下標運算元組元素 建立陣列 int a int a new int 3 int a n...