数据结构相关练习
奥里给数据结构
noobcz
Up!Up!Up!
展开
-
考研真题1:假设带有头节点的单链表
假设带有头节点的单链表,节点结构如下图:假设该链表只给出了头指针list,在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的节点(k为正整数)。若查找成功,算法输出该节点数据域的值,并返回1;否则返回0;思想如下:...原创 2020-12-04 22:35:04 · 1134 阅读 · 0 评论 -
用构造二叉树构造算术表达式,通过二叉树计算算术表达式;
参考代码链接代码围绕一个核心思想:对于一个算式,找到最后一个被使用的运算符作为划分,以此运算符为界,递归计算左边的值,递归计算右边的值,然后以此运算符进行运算,即可得到结果.最后一个被使用的运算符是什么呢?例如: 2+3*(4-1)-5/1肯定先算括号里的, 然后算* / 法,最后才考虑+,-法 .所以,先考虑+,-法,再考虑* / 法. 括号外的±/可能很多,所以确定一个原则,找整个算式中最右边±,/.由于要找的是括号外的±/, 所以得想办法避免记录括号内的±/,所以设置了一个标志p,初转载 2020-11-24 09:48:03 · 953 阅读 · 1 评论 -
哈夫曼树及哈夫曼编码详解(附带完整代码)
Huffman Tree简介赫夫曼树(Huffman Tree),又称最优二叉树,是一类带权路径长度最短的树。假设有n个权值{w1,w2,…,wn},如果构造一棵有n个叶子节点的二叉树,而这n个叶子节点的权值是{w1,w2,…,wn},则所构造出的带权路径长度最小的二叉树就被称为赫夫曼树。这里补充下树的带权路径长度的概念。树的带权路径长度指树中所有叶子节点到根节点的路径长度与该叶子节点权值的乘积之和,如果在一棵二叉树中共有n个叶子节点,用Wi表示第i个叶子节点的权值,Li表示第i个也叶子节点到根节点的路转载 2020-11-23 21:56:39 · 6441 阅读 · 0 评论 -
用数组的基本操作实现对数组的初始化、赋值、返回数组的值以及定位操作
用数组的基本操作实现对数组的初始化、赋值、返回数组的值以及定位操作实现:定义一个二维数组B,并将B初始化,然后将数组B的值依次赋值给数组A,并将数组A的元素输出。目录结构:CMakeList.txt:在add_executable中添加了SeqArray.h的头文件头文件SeqArray.h//// Created by yuecaizheng on 2020/11/10.//#ifndef TEST_SEQARRAY_H#define TEST_SEQARRAY_H#endif原创 2020-11-10 09:41:48 · 371 阅读 · 0 评论 -
C语言实现 基于队列的操作来实现杨辉三角的不断生成过程。
基于队列的操作来实现杨辉三角的不断生成过程。(注:不要用其它的公式计算的方法或者二维数组来实现)代码片段#include <stdio.h>#include <stdlib.h>#define MAXSIZE 1000 //队列的最大长度typedef int ElemType;typedef struct { ElemType data[MAXSIZE];//队列的存储空间 int front, rear;//队列的队头指针和队尾指针} CyQue原创 2020-10-27 21:26:24 · 479 阅读 · 0 评论 -
C语言实现,CLion客户端,实现基于链式队列的操作来实现杨辉三角的不断生成过程。
基于数组实现队列的物理数据结构。输入形式:输入一个整数n (行数不大于20)输出形式:打印出来前(n+1)行的杨辉三角数列功能实现:输出前20层的杨辉三角序列样例输入输出形式:输入:6输出:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1头文件LinkQueue.h//// Created by ycz 2020/10/27.//#ifndef TEST1_LINKQUEUE_H#define TEST1_L原创 2020-10-27 09:51:04 · 294 阅读 · 0 评论 -
实现一个简单的计算器,输入一个包含圆括号、加减乘除、求余等符号组成的算术表达式字符串,输出该算术表达式的值
#include <stdio.h>#include <string.h>#include <stdlib.h>int Preemption(char a, char b) //符号优先级比较,a为当前读入,b为栈顶元素{ int c; //c反馈指令信息 0.结束 1.弹出 2.进栈 3.删除当前元素及栈顶元素 4.报错 switch (a) { case '#': //输入的符号位#,则程序开始运算结原创 2020-10-13 09:36:30 · 5278 阅读 · 2 评论 -
C语言实现利用链表实现一个简单的图书信息管理系统
C++利用链表实现一个简单的图书信息管理系统(1)图书信息包括ISBN号、书名、作者名、价格和数量等;(2)系统的主要功能包括:图书信息的创建、输出图书信息、查询图书信息、增加图书信息、删除图书信息。#include <stdio.h>#include <stdlib.h>#include <string.h>//创建结构体及其成员typedef struct Node { int num;//编号 char name[20];//书名原创 2020-10-13 08:45:00 · 8489 阅读 · 4 评论