【學姐總結】C語言數據結構

十年開發一朝靈 2024-06-10 14:13:27

1. 數組

數組是C語言中一種基本的數據結構,它用于存儲具有相同數據類型的元素集合。數組的大小在定義時確定,且在程序運行過程中不可改變。

int arr[10]; // 定義一個包含10個整數的數組初始化數組:int arr[5] = {1, 2, 3, 4, 5};訪問數組元素:arr[index];修改數組元素:arr[index] = value;

2. 結構體

結構體是一種用戶自定義的數據類型,它允許將不同類型的數據組合在一起。結構體在C語言中用于表示現實世界中的對象和實體。

struct Person { char name[50]; int age;};定義結構體變量:struct Person person1;訪問結構體成員:person1.age;修改結構體成員:person1.age = 25;

3. 鏈表

鏈表是一種動態數據結構,它由一系列節點組成,每個節點包含數據和指向下一個節點的指針。鏈表可以靈活地插入和刪除元素,且不受固定大小的限制。

struct Node { int data; struct Node *next;};創建鏈表節點:struct Node *node = (struct Node *)malloc(sizeof(struct Node));插入節點:node->next = current->next; current->next = node;刪除節點:current->next = current->next->next;

4. 棧

棧是一種後進先出(LIFO)的數據結構,它允許在一端進行插入和刪除操作。棧常用于解決括號匹配、逆序輸出等問題。

int stack[100];int top = -1;入棧:stack[++top] = value;出棧:int value = stack[top--];判斷棧空:top == -1

5. 隊列

隊列是一種先進先出(FIFO)的數據結構,它允許在一端進行插入操作,在另一端進行刪除操作。隊列常用于任務調度、緩沖區管理等場景。

int queue[100];int front = 0;int rear = -1;入隊:queue[++rear] = value;出隊:int value = queue[front++];判斷隊空:front > rear

6. 樹

樹是一種分層數據結構,它由節點組成,每個節點包含數據和指向子節點的指針。樹常用于表示具有層次關系的數據,如文件系統、組織結構等。

struct TreeNode { int data; struct TreeNode *left; struct TreeNode *right;};創建樹節點:struct TreeNode *node = (struct TreeNode *)malloc(sizeof(struct TreeNode));插入節點:node->left = current->left; current->left = node;遍曆樹: inorder(node->left); printf("%d ", node->data); inorder(node->right);

7. 圖

圖是一種複雜的數據結構,它由節點和邊組成,用于表示對象之間的多對多關系。圖可以有多種形式,如無向圖、有向圖、加權圖等。

struct Graph { int numVertices; struct AdjList *adjLists;};創建圖:struct Graph *graph = (struct Graph *)malloc(sizeof(struct Graph));添加邊:addEdge(graph, src, dest);遍曆圖:DFS(graph, vertex);

總結

數據結構是C語言編程中非常重要的一部分,掌握數據結構的高級技巧對于成爲一名優秀的C語言程序員至關重要。通過本篇文章,我們了解到了數組、結構體、鏈表、棧、隊列、樹和圖等數據結構。

0 阅读:26

十年開發一朝靈

簡介:感謝大家的關注