C语言数据结构
文章平均质量分 66
差二叉树,排序
达志华
dark flame master
展开
-
顺序表 数据结构 顺序表基本操作 C语言实现 顺序表详解
1.线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列,线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条直线,但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储2.顺序表 2.1概念及结构 顺序表就是数组,但是数据必须从第一个位置开始连续存储顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况原创 2022-04-23 17:57:31 · 2598 阅读 · 2 评论 -
链表(1)C语言实现 单链表 无头结点 基本操作 无头结点单链表的基本操作 详解 链表的概念及结构 数据结构
3.链表 3.1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的注意:1.从上图可看出,链式结构在逻辑上是连续的,但是在物理上不一定连续2.现实中的结点一般都是从堆上申请出来的3.从堆上申请的空间是按照一定的策略来分配的,两次申请的空间可能连续也可能不连续3.2 链表的分类1. 单向或者双向2. 带头或者不带头 3. 循环或者非循环3.3 单链表的实现 ...原创 2022-04-28 16:14:11 · 2432 阅读 · 3 评论 -
链表(2) 链表面试题 C语言实现 数据结构 删除所有相同的值 链表反转 返回中间结点 返回倒数第k个结点 合并两个有序链表 链表划分 判断链表是否为回文结构 判断链表是否相交 判断链表中是否有环等等
3.4 链表面试题第一题删除链表中等于给定值 val 的所有结点并返回新的头节点struct ListNode* removeElements(struct ListNode* head, int val){ struct ListNode*pre=NULL; struct ListNode*p=head; while(p!=NULL) { if(p->val==val) ..原创 2022-05-11 20:46:31 · 342 阅读 · 0 评论 -
带头双向循环链表 双向链表 基本操作 C语言实现 数据结构 顺序表和链表的区别
3.5 双向链表的实现结构复杂,操作简单原创 2022-05-12 12:40:46 · 199 阅读 · 0 评论 -
栈详解 顺序栈 基本操作 C语言实现 数据结构
一、栈1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底,栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则1.2栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些,因为数组在尾上插入数据的代价比较小顺序栈基本操作#include<stdio.h>#include<stdlib.h>#incl..原创 2022-05-14 00:44:45 · 1153 阅读 · 0 评论 -
队列 基本操作 链队列 C语言实现 数据结构
2.队列 2.1队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头2.2链队列的实现 队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低#include<stdio.h>#include<assert..原创 2022-05-16 16:34:54 · 183 阅读 · 0 评论 -
栈和队列 面试题 概念选择题 数据结构 C语言实现
1.括号匹配问题2.用队列实现栈请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作3.用栈实现队列原创 2022-05-20 16:49:23 · 303 阅读 · 0 评论 -
树的概念及结构 二叉树的概念及结构
1.树概念及结构1.1树的概念 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合,把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,叶朝下有一个特殊的结点,称为根结点,根节点没有前驱结点 除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i<= m)又是一棵结构与树类似的子树,每棵子树的根结点有且只有一个前驱,可以有0个或多个后继因此,树是递归定义的 .原创 2022-05-21 13:18:15 · 177 阅读 · 0 评论 -
堆 堆的基本操作 二叉树的顺序结构及实现
3.二叉树的顺序结构及实现 3.1 二叉树的顺序结构 普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费,而满二叉树或完全二叉树更适合使用顺序结构存储,现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段3.2 堆的概念及结构二叉树用数组存储,只能是满二叉树或完全二叉树小根堆: 1、完全二叉树 2、树中所有父亲都小于等于孩子大根堆: 1、完全二叉原创 2022-07-10 17:10:20 · 828 阅读 · 1 评论