数据结构
单链表、双链表、顺序表、栈、队列、二叉树、堆的基本操作
脆订壳
这个作者很懒,什么都没留下…
展开
-
链表创建与遍历(递归)-C语言
链表创建与遍历(递归)#include <stdio.h>#include <string.h>typedef struct link{ char data; struct link *next;}Link;int a[]={3, 2, 5, 8, 4, 7, 6, 9, 10, 520};void CreateLink(Link **Lk);void CreateLink1(Link **Lk, int *a);void PrintList(Link *L原创 2021-12-19 16:06:40 · 1178 阅读 · 0 评论 -
二叉树的基本操作(递归)-C语言
//二叉树的基本操作#include <stdio.h>#include <stdlib.h>typedef int DataType;typedef struct Tree{ DataType data; //存储的数据域// char data; struct Tree *lchild; //指向当前节点的左孩子 struct Tree *rchild; //指向当前节点的右孩子}BitTree;BitTree *Create原创 2021-12-18 21:29:57 · 880 阅读 · 0 评论 -
队列的实现(链表)-C语言
队列的实现(链表)队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)。入队列:进行插入操作的一端称为队尾。出队列:进行删除操作的一端称为队头。队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。#include <stdio.h>#include <assert.h>#include <stdbool原创 2021-12-15 15:23:15 · 1013 阅读 · 0 评论 -
栈的实现(数组)-C语言
栈的实现(数组)一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈: 栈的插入操作叫做进栈、压栈、入栈,入数据在栈顶。出栈: 栈的删除操作叫做出栈。出数据在栈顶。栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优化一些。因为数组在尾上插入数据的代价比较小。#include <stdio.h>#include &l原创 2021-12-15 15:11:14 · 1258 阅读 · 1 评论 -
顺序表(动态)的基本操作大全-C语言
顺序表(动态)的各种基本操作静态顺序表:使用定长数组存储元素。动态顺序表:使用动态开辟的数据存储。静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大小,所以下面我们实现动态顺序表。优点:支持随机访问。需要随机访问数据时,可以适应很好的算法。缺点:头部、中部插入插入时间效率低。连续的物理空间,空间不够了以后需要增容:① 增容有一定层度的消耗。② 为了避免频繁的增原创 2021-12-14 20:33:32 · 595 阅读 · 0 评论 -
双向链表的基本操作大全(增删改查...)-C语言
//双向链表的基本操作(增删改查...)//新创建双链表为 41->67->34->0->69->24->78//在表中第 4 的位置插入元素 1 41->67->34->1->0->69->24->78//在表中第 2 的位置插入元素 8 41->8->67->34->1->0->69->24->78//表中删除元素 8原创 2021-11-30 19:39:33 · 256 阅读 · 0 评论 -
单链表的基本操作大全(增删改查...)-C语言
//单链表的基本操作(增删改查...)//新创建的链表为:1->7->4->0->9->4->8//7 find!//7前插入是://1->4->7->4->0->9->4->8//4 find!//4后插入是://1->4->8->7->4->0->9->4->8//7 find!//删除7后是:1->4->8->4->0->9-&g原创 2021-11-30 19:38:24 · 113 阅读 · 0 评论 -
单链表的创建与遍历-C语言
//单链表的创建与遍历#include <stdio.h>#include <stdlib.h>struct node{ int data; struct node *next;};typedef struct node Node;int main(){ Node *head, *p, *q; p = (Node *)malloc(sizeof(Node)); p->data = 20; head = p; //单链表的创建 for(int i原创 2021-11-28 21:54:57 · 750 阅读 · 0 评论