自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 noj08逆波兰式

逆波兰式

2022-06-17 15:24:10 90 2

原创 noj07表达式括号匹配

表达式括号匹配

2022-06-17 15:22:22 83

原创 noj06LOCATE操作

Locete操作

2022-06-17 15:20:44 103

原创 noj05单链表的删除

单链表的删除

2022-06-17 15:19:08 113

原创 noj04单链表的归并

单链表的归并

2022-06-17 15:17:49 132

原创 noj03顺序表的删除

顺序表的删除

2022-06-17 15:15:52 61

原创 noj02线性表的就地逆置

线性表的就地逆置

2022-06-17 15:11:40 102

原创 noj01顺序表的插入运算

西工大noj数据结构第一题

2022-06-17 15:07:31 86

原创 noj26二叉排序树的合并

二叉排序树合并其实就是遍历一个树插入另外一个树。#include <stdio.h>#include <stdlib.h>typedef struct BiNode{ int data; struct BiNode *leftchild,*rightchild;}BiNode,*BiTree;//初始化二叉排序树BiTree InitTree(BiTree T){ int e; scanf("%d",&e); if(e.

2022-05-29 13:53:03 229

原创 noj25二叉排序树的插入和删除

#include <stdio.h>#include <stdlib.h>#include<malloc.h>//二叉排序树typedef struct BiNode{ int data; struct BiNode *leftchild,*rightchild;}BiNode,*BiNodePtr,*BiTree;//初始化二叉排序树BiNodePtr InitTree(BiTree T){ int e; scanf..

2022-05-28 16:42:03 187

原创 noj24二叉排序树的判别

二叉排序树二叉排序树(Binary Sort Tree)或者是一颗空树;或者是具有如下性质的二叉树:(1) 若它的左子树不空,则 左子树 上所有结点的值 均小于 它的根结点的值;(2) 若它的右子树不空,则 右子树 上所有结点的值 均大于 它的根结点的值;(3) 它的 左、右子树又分别为二叉排序树 。显然二叉排序树的定义是一个递归形式的定义,所以后面景禹要讲的插入、查找和删除都是基于递归的形式。原文链接#include <stdio.h>#include <stdlib.

2022-05-26 22:42:37 334

原创 noj23构造哈希表

哈希表介绍在面前讨论的各种结构(线性表、树)中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系。因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上。在顺序查找时,比较的结果为“=”与“≠”两种可能;在折半查找、二叉排序树查找,比较的结果为“<”、“=”和“>”三种可能。查找的效率依赖于查找过程中所进行的比较次数。哈希表的概念在查找时,我们理想的情况是希望不经过任何比较,一次存取便能得到所查记录,那就必须在记录的储存位置和它的关键字.

2022-05-26 14:53:36 228 3

原创 noj22Dijkstra算法

迪杰斯特拉算法:迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。通过Dijkstra计算图G中的最短路径..

2022-05-26 10:42:03 178

原创 noj21逆波兰表达式

回顾一下逆波兰式:逆波兰表达式又叫做后缀表达式。逆波兰表示法是波兰逻辑学家J・卢卡西维兹于1929年首先提出的一种表达式的表示方法。后来,人们就把用这种表示法写出的表达式称作“逆波兰表达式”。逆波兰表达式把运算量写在前面,把算符写在后面。重点:符号栈中,栈顶优先级最高向符号栈中加入符号时,要对比栈顶符号的优先级是否小于当前符号的优先级,如果小于则直接入栈,如果大于则要将栈内元素弹出,一直弹出至当前的栈顶符号的优先级小于当前符号,然后再将当前符号入栈如果入栈符号为 ( ,则直接入栈如果入栈符.

2022-05-24 22:32:18 249

原创 noj20基于图的广度优先搜索策略

这道题是广度优先搜索 区别一下广度优先和深度优先1、深度优先算法遍历规则:不断地沿着顶点的深度方向遍历。顶点的深度方向是指它的邻接点方向。 最后得出的结果为:ABDECFHG。2、广度优先算法:遍历规则: 1)先访问完当前顶点的所有邻接点。(应该看得出广度的意思) 2)先访问顶点的邻接点先于后访问顶点的邻接点被访问。最后得出的结果为:ABCDEFGH。深度优先搜素算法:不全部保留结点,占用空间少;有回溯操作(即有入栈、出栈操作),运行速度慢。广度优先搜索算法:保留全部结点,占用空..

2022-05-12 20:42:55 230

原创 noj19基于图的深度优先搜索策略

1.看一下邻接表法对图中的每个顶点vi都分别建立一个对应的单链表(对无向图称为“边表”,对有向图称为“出边表”)来存储所有邻接与顶点vi的边(对于有向图而言是指以vi为尾的弧),边表中的每个结点分别对应于邻接于顶点vi的一条边。边表中的每个结点主要包含两个域,其中邻接点域(adjvex)指示与顶点vi邻接的点在图中的位置,链域(nextedge)指示下一条边或弧的结点。如果是带权图,还可以再加一个域weight,表示从vi到adjvex这条边的权值。(这道题没有涉及到权值)对于图中的所有顶点信息,用一.

2022-05-12 19:50:12 248

原创 noj18建立二叉树的二叉链表

根据题意,先回顾一下课堂上讲的二推一的方法只要知道其中任意两种遍历的顺序,我们就可以推断出剩下的一种遍历方式的顺序,这里我们只是以:知道前序遍历和中序遍历,推断后序遍历作为例子,其他组合方式原理是一样的。要完成这个任务,我们首先要利用以下几个特性:特性A,对于前序遍历,第一个肯定是根节点;特性B,对于后序遍历,最后一个肯定是根节点;特性C,利用前序或后序遍历,确定根节点,在中序遍历中,根节点的两边就可以分出左子树和右子树;特性D,对左子树和右子树分别做前面3点的分析和拆分,相当于做递归,我们就可.

2022-05-09 23:33:09 560

原创 noj17输出以二叉树表示的算术表达式

由题知 先序输入 中序输出可以自己画一个二叉树来看一下比较直观#include <stdio.h>#include <stdlib.h>typedef struct TNode{ char data; struct TNode *Lchild; struct TNode *Rchild;}TNode; //先序输入建立二叉树void CreatTree(TNode *temp){ temp->Lchild=NULL; .

2022-04-25 23:56:50 1011

原创 noj16计算二叉树叶子结点数目

明白NULL不是真正的空,#才是空主要看注释吧#include <stdio.h>#include <stdlib.h>typedef struct TNode//二叉树节点{ char data; struct TNode *Lchild; struct TNode *Rchild;}TNode; //先序输入建立二叉树void CreatTree(TNode *temp){ temp->Lchild=NULL;//先制空.

2022-04-24 00:16:08 92

原创 noj15建立二叉树的二叉链表存储结构

如图,要求建立二叉树的二叉链表存储结构,然后先序遍历输出先回顾一下二叉树的基本内容二叉树定义:二叉树(Binary Tree)是n(n>=0)个节点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两颗互不相交的、分别称为根节点的左子树、右子树的二叉树组成。五种基本形态:空二叉树、只有一个根节点、根节点只有左子树、根节点只有右子树、根节点既有左子树又有右子树。二叉树的特点1.每个节点最多有两棵子树,即不存在度大于2的节点。2.左子树和右子树是有序的,不能随便颠倒。3.即使.

2022-04-19 19:54:08 1748

原创 noj14求广义表深度

广义表理论上很好理解,但是我感觉对我来说上手还有点困难(还是太菜)。先看广义表的一些定义吧1 )什么是广义表广义表,又称列表,也是一种线性存储结构,既可以存储不可再分的元素,也可以存储广义表,记作:LS = (a1,a2,…,an),其中,LS 代表广义表的名称,an 表示广义表存储的数据,广义表中每个 ai 既可以代表单个元素,也可以代表另一个广义表。2 )广义表的原子和子表广义表中存储的单个元素称为 “原子”,而存储的广义表称为 “子表”。例如 :广义表 LS = {1,{1,2,3}}.

2022-04-16 14:21:54 327

原创 noj13以十字链表为存储结构实现矩阵相加

题目要求题目要求十字链表为存储结构十字链表大致就是这个样子注意CrossList里面的两个指针其实是二级指针#include <stdio.h>#include <stdlib.h>typedef struct Triple{ int m; int n; int val; struct Triple *right; struct Triple *down;}Triple;typedef struct CrossLine

2022-04-15 21:14:34 401

原创 noj12以三元组表为存储结构实现矩阵相加

![在这里插入图片描述](https://img-blog.csdnimg.cn/1561af897612408ab05caea2b3f6722c.png?x-oss-process=image/waterm题目和数据结构实验有点相似涉及到稀疏矩阵的运算,给出稀疏矩阵的定义在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。要求使

2022-04-15 00:01:53 928

原创 noj11循环右移

标题示例由于这次写文章距离AC时间较长,当时没有趁热打铁写完,希望现在还能回忆起来。注意题目要求是循环右移,这个示例给的有点迷惑性,左移三位和右移三位结果一样,当时我就给左移了【可能眼神不太好】,所以我的方法就在左移的基础上逆着输出了一下(我记得是这样的doge),还是使用循环队列,还是看代码吧#include <stdio.h>#include <stdlib.h>//节点typedef struct Node{ int val;/* data */

2022-04-13 23:14:30 122

原创 noj10k阶斐波那契数列

标题 noj10k阶斐波那契数列题目首先,我们需要明白k阶斐波那契数列的定义,它不是我们之前熟知的那种斐波那契数列,其定义如下:K阶斐波那契数列的前K-1项均为0,第k项为1,以后的每一项都是前K项的和比如二阶斐波那契数列:0、1、1、2、3、5、8、13、21、34、…三阶则是:0、0、1、1、2、4、7…笔者采用循环队列中的链式存储结构解答(网上也有诸多大佬的其他解法)话不多说,上代码:#include <stdio.h>#include <stdlib.h&

2022-04-07 10:07:18 674 1

原创 noj09循环队列

循环队列这道题的叙述有点问题,我也是看到网上的大佬才发现其实是题目描述的输入输出存在问题题上说队满时输出yes;但是到了下边给的例子:yes就变成了输入,导致当初WA了很多次。一、题目解析本题要求使用循环队列,队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列常见的存储结构分为顺序存储结构和链式存储结构,笔者采用链式存储结构。二、代码分析#include <stdio.h>#include <stdlib.h>//创建node

2022-03-31 21:49:45 332

西北工业大学计算机学院信号与系统实验报告

实验一 常用信号的分类与观察......................................................................................................... 4 一、实验内容......................................................................................................................................... 4 二、实验过程......................................................................................................................................... 4 三、实验数据................................................................................

2024-01-12

C程序设计大作业,图书管理系统

开发工具(列出所使用的开发工具和第3方开发库) Code::blocks 3、主要功能(详细说明程序的功能) 1.可以添加,修改,删除图书信息; 2.查询图书信息: 1)按书名查询; 2)按作者查询; 3.可以借阅图书 4.可以归还图书; 5.可浏览所有图书信息包括在架或者被借出 6.使用菜单让用户选择不同功能; 7.可以管理系统,进图书统计,会员管理系统等等。 4、设计内容(详细描述解决问题的原理和方法、算法、数据结构等) 在解决此问题的过程中,通过一系列标准函数库以及自己编写的函数,实现了简单的管理系统的大致模型。分析此问题时,整体采用了分治法,将一个复杂的过程分为查询,借阅,管理三个方面,通过此方法化面为点,可以逐步完成各个分问题,最后综合起来解决总问题。使用此方法使编程难度大大降低。对于数据结构,在定义学生类形时,用此存放借阅书籍情况,当然,还有其他的一些地方,判断是否有存书时,登记会员信息时,还书时,都使用了数据结构。

2024-01-12

C语言程序设计万年历大作业

西北工业大学计算机学院C语言程序设计万年历大作业 万年历是我国古代传说中最古老的一部太阳历。 为纪念历法编撰者万年的功绩,便将这部历法命名为“万年历”。 而现在所使用的万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。 进入近代以来,电子万年历逐步进入人们的生活,它方便,准时,快捷,给人们的生活带来了极大的便利,而一个可靠的万年历程序也极其重要,因为现代人的时间观念越来越重要,一个能准确显示日期的程序也值得我们C语言的初学者进行学习。 1)若输入的是年份,则输出该年的日历(注意闰年情况); 2)若输入的是年月(格式可以是:yyyy/mm、yyyy-mm、yyyy,mm),则输出该月的 日历; 3)若输入的是日期(格式可以是:yyyy/mm/dd、yyyy-mm-dd、mm/dd/yyyy或mm- dd-yyyy),则输出该日期属于本年的第几周,星期几。 4)程序启动后,用户可以多次输入年份,月份或日期查看日历,当输入0时退出程序。

2024-01-10

MOOC电路基础spoc参考答案

西北工业大学 电路基础 中国大学MOOC spoc参考答案

2024-01-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除