![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
数据结构(C语言版)学习分享
云边有把小AK
人工智能大四
展开
-
给定一个带头节点的单链表,所有数据值无序,删除介于min和max的所有值
#include <stdio.h>#include <math.h>typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;void RangeDelete(LinkList &L,int min,int max){ LNode *p=L->next; LNode *pre=L; while(p!=NULL){ if(p-.原创 2021-12-30 16:14:31 · 622 阅读 · 0 评论 -
数据结构:赫夫曼树(最优二叉树) 及 赫夫曼编码
赫夫曼树(Huffman)又称最优树,是一类带权路径长度最短的树,具有n个叶子结点 (每个结点的权值为Wi) 的二叉树不止一棵,但在所有的这些二叉树中,必定存在一棵WPL(带权路径长度)值最小的树,称这棵树Huffman树或称最优树 。原创 2021-12-22 13:06:37 · 1194 阅读 · 0 评论 -
栈的顺序存储实现(c语言版)
1,定义结构体元素:#define STACK_INIT_SIZE 100#define STACKINCREMENT 10#define TRUE 1#define FALSE 0typedef struct { SElemType * base; //栈顶指针 SElemType *top; //栈底指针 int stacksize; //栈可使用的最大容量} SqStack; 按初始分配量进行第一次存储..原创 2021-10-03 11:18:16 · 249 阅读 · 0 评论 -
数据结构:弗洛伊德算法(最短路径)图文详解
弗洛伊德算法通过邻接矩阵存储图(有向图或者无向图)的信息,两点的距离,通过动态转移方程 a[i][j] = min(a[i][j], a[i][p] + a[p][j]); 来更新最短路径,求出各个点之间的最短路径原创 2021-11-30 22:11:18 · 23398 阅读 · 7 评论 -
栈的基本概念(c语言版)
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为L=(a1,a2,.......ai,ai+1,....an)栈(stack)是只允许在一端进行插入或删除操作的线性表,逻辑结构:与普通线性表相同 数据的运算:插入,删除操作有区别(栈的插入和删除只能在栈顶进行)栈顶:允许插入和删除的一端栈底:不允许插入和删除的一端特点:后进先出(last in fir...原创 2021-10-03 10:43:57 · 1082 阅读 · 0 评论 -
[NOIP2013]表达式求值 c++四则表达式求值(不包含括号)
定义两个栈,一个a栈用来存放数字,另一个b栈用来存放运算符,遇见数字将数字压入a栈,遇见运算符将运算符压入b栈,当第二次压入运算符之前 先与此时b栈栈顶的运算符'x' 优先级进行比较,如果'x'优先级大于栈顶优先级,将'x'压栈,若小于,取出a栈中的栈顶元素a[top]和a[top-1]与b栈中栈顶运算符 'y' 进行运算,将运算结果result再次压入a的栈顶,将b栈顶运算符'y'弹出,将'x'运算符插入栈中。当循环遍历完之后,可能栈中可能还会有剩余的运算符和整数没有运算,判断是否还有运算符...原创 2021-10-23 15:57:43 · 723 阅读 · 4 评论 -
反转单链表
解法一:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseList(struct ListNode* head){ if(head==NULL) { return NULL; } .原创 2021-09-28 18:04:01 · 82 阅读 · 0 评论 -
对比顺序表和链表优缺点
Round1:逻辑结构都属于线性表,都是线性结Round2:存储结构顺序表的优缺点:优点:支持随机存取,存储密度高(只需要存储数据)缺点:大片连续空间分配不方便,改变容量不方便链表的优缺点:优点:离散的小空间分配方便,改变容量方便缺点:不可随机存储,存储密度低(除了存储数据,还需要空间存储指针)round3:基本操作(基本运算){创销,增删改查}1,创:顺序表:需要预分配大片连续空间。若分配空间过小,则之后不方便拓展容量;若分配空间过大,则浪费内存资源静态..原创 2021-09-29 09:53:19 · 905 阅读 · 0 评论