自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

亦木的博客

考研奋斗中,分享专业课学习笔记。

  • 博客(17)
  • 收藏
  • 关注

原创 数据结构笔记16:递归算法:删除不带头结点的单链表中所有值为x的结点

题目:设计一个递归算法,删除不带头结点的单链表中所有值为x的结点。代码实现//设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点#include"head.h";typedef int Elemtype;//定义单链表typedef struct LNode { int data; struct LNode* next;}LNode, * LinkList;//...

2020-04-29 21:08:20 1306 1

转载 数据结构笔记15:C/C++中创建(带头结点、不带头结点的)单链表(图解版)

1.尾插法建立带头结点的单链表尾插法思想尾插法的思想其实很简单,通俗来讲就是每创建一个新节点都插到原来链表的后面。代码实现Node *Head, *L, *LNew;/* 申请节点 */Head = (Node *)malloc(sizeof(Node));/* 带头结点 */L = Head;L->next = NULL; /* 初始赋值 */for(int ...

2020-04-29 19:06:50 2120

原创 数据结构笔记14:两块指针域,向前向后都可以(双链表的定义和基本操作的实现)

双链表的定义和基本操作的实现一、定义1.定义单链表初始化链表二、插入1.后插操作2.前插操作三、删除四、查找1.按位查找2.按值查找一、定义1.定义单链表typedef struct DNode { Elemtype data; struct DNode* prior, * next;}DNode,*DLinkList;相比单链表,多了一个前驱指针域初始化链表bool Init...

2020-04-24 20:45:24 832

原创 数据结构笔记13:小小指针,大有用处。(单链表的定义和基本操作的实现)

单链表上基本操作的实现一、插入(1)按位序插入①带头结点②不带头结点(2)指定结点的后插元素操作(3)指定结点的前插元素操作(3)指定结点前插入结点操作二、删除(1)按位序删除(2)指定结点的删除.........一、插入(1)按位序插入①带头结点按位序插入元素(带头结点)最好时间复杂度O(1)表头插入时,最坏时间复杂度O(n)表尾插入时。平均时间复杂度O(n)//在第i个位置插入元...

2020-04-22 21:07:34 448

原创 数据结构笔记12:在含n个整数的数组中找未出现的最小正整数

【2018年408统考真题】题目:给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。例如,数组{-5, 3, 2, 3}中未出现的最小正整数是1;数组{1, 2, 3}中未出现的最小正整数是4。1、第一种方法(暴力搜寻)算法思想:最小正整数是1,从1开始增加,每个正整数都在数组中找是否有这个数,没有则输出算法时间复杂度是O(n^2),空...

2020-04-18 15:18:47 5950 3

原创 数据结构笔记11:C语言实现查找一个无序序列中的主元素(三种不同方法,你值得拥有)

问题:(2013年408统考真题)已知一个整数序列A=(a0,a1,…,an-1),其中0≤ai<n(0≤i<n)。若存在ap1=ap2=…=apm=x且m>n/2(0≤pk<n,1≤k≤m),则称x为A的主元素。例如A=(0,5,5,3,5,7,5,5),则5为主元素;又如A=(0,5,5,3,5,1,5,7),则A中没有主元素,假设A中的n个元素保存在一个一维数组中,...

2020-04-16 23:12:50 5335 2

原创 数据结构笔记10:求两个升序序列的中位数的三种方法(归并排序你会用了吗?)

题目:一个长度为L (L>=1)的升序序列S,处在第[L/2]个位置的数称为S的中位数。例如,若序列S1=(11, 13, 15, 17, 19),则S1的中位数是15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2= (2, 4,6,8, 20),则S1和S2的中位数是11。现在有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的...

2020-04-15 20:36:31 6638 11

原创 数据结构笔记9:将一维数组R中的序列循环左移p个元素

题目:设将n(n>1)个整数存放到一维数组R中,设计一个算法,将R中的序列循环左移P(0<P<n)个位置,即将R中的数据由{X0,X1,…,Xn-1}变换为{Xp,Xp+1,…,Xn-1,X0,X1,…,Xp-1}看完题目最先想到的思路就是逆序算法算法思想:将n个整数存放到一维数组R中,将R中保存的序列循环左移P个位置,可看成数组中前p个元素和后n-p个元素交换位置,直接有效...

2020-04-15 20:15:16 1512

原创 数据结构笔记8:在有序递增线性表中最快方法查找元素,找到后将其与其后继元素交换位置,若表中没有,插入此元素仍使线性表有序递增

线性表中的元素递增有序且按顺序存储于计算机内,要求设计一个算法,完成用最少时间在表中查找数值为x的元素,若找到将其与其后继元素交换位置,若表中没有,插入此元素仍使线性表有序递增。1.代码实现:/*算法思想:题目关键字:最少时间:折半查找法(二分法)与后继交换位置(考虑无后继情况),插入后仍递增有序(插入数据后进行位置变换)*/#include"head.h"//折半查找法int Bin...

2020-04-13 21:19:45 1515 1

原创 数据结构笔记7:折半查找法(二分查找法)及C语言实现

折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高。但是该算法的使用的前提是静态查找表中的数据必须是有序的。折半查找算法对静态查找表{5,13,19,21,37,56,64,75,80,88,92}采用折半查找算法查找关键字为 21 的过程为:如上图 1 所示,指针 low 和 high 分别指向查找表的第一个关键字和最后一个关键字,指针 mid 指向处于 lo...

2020-04-13 21:05:21 1423

原创 数据结构笔记6:对同一数组中的两个线性表交换位置

题目:已知一维数组A[m+n]中依次存放两个线性表A和B(AB),试编写一个函数,将数组中两个顺序表的位置互换,即B和A(BA)。此算法涉及基本逆序操作,可参考“数据结构笔记3”//将在同一数组中存放的两个顺序表的位置互换//算法思想:先将整个数组(AB)逆置,此时数组变为了(B逆A逆),然后再将B逆A逆分别逆置变为BA#include"head.h"typedef int DataTy...

2020-04-11 20:46:54 895 2

原创 数据结构笔记5:有序顺序表中删除重复元素,合并两个有序顺序表操作

从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同。//删除有序顺序表中所有值重复的元素//算法思想:相同元素在有序表中位置连续,遍历顺序表,从第一个值开始向后判断。//若相等则继续往后判断,若不相等则前移,删除掉前面相等的元素。#include"head.h"bool del_same(SeqList& L) { if (L.length == 0) { re...

2020-04-10 20:51:11 2053

原创 数据结构笔记4:在有序顺序表和(无序)顺序表中删除一段特定范围内的数据元素

1、从有序顺序表中删除其值在给定值s与t之间(要求s<t)的所有元素,如果s或t不合理或顺序表为空,则显示出错信息并退出运行。注意:在读下面代码时,注意一下"L.length=i;"这里的注释,有助于理解线性表中位序与下标的关系。//有序顺序表,删除在给定值s到t的范围内的所有元素(s<t)//算法思想:有序顺序表,遍历整个表,找到第一个比s大的数,再找到第一个比t大的数//然...

2020-04-08 22:42:45 1824

原创 数据结构笔记3:顺序表的逆序操作、删除特定值操作

1、将顺序表L中所有元素逆置注意:交换L.length/2次即可//将顺序表中的所有元素逆置//算法思想,依次执行:第一个值和最后一个值互换,第二个值和倒数第二个值互换......#include"head.h"void Reverse(SeqList &L) { int n;//用作交换的第三方 for (int i = 0; i < L.length / 2; i+...

2020-04-08 22:29:43 2611

原创 数据结构笔记2:顺序表中删除最小值元素

因Dev-C++不能在同一个项目中运行多个含有main函数的c++文件,所以后期笔记的代码实现全部用visual studio 实现,vs可以通过生成排除的方法将其他无用的c++ 文件排除(visual studio 安装和生成排除的方法可参考其他文章)。我们将一些公共的方法放到头文件中,在其他子文件中直接调用方法即可,这样使代码更加简洁,结构更加明显,文件也好管理,执行哪一个文件将其他文件生成...

2020-04-07 23:56:43 3151

原创 数据结构笔记1:顺序表的动态扩容、插入、删除、按值查找、按位查找操作

此C++程序定义了一个动态顺序表,实现了动态增加数组长度,实现插入、删除、查找操作。#include <iostream>#include<stdlib.h>using namespace std;#define InitSize 10typedef struct{ int *data;//指示动态分配数组的指针 int Maxsize;//顺序表的最大容量...

2020-04-06 19:36:29 1124

原创 eclipse与DW联合开发java web项目

eclipse与DW联合开发java web项目引言:在开发java web项目时,我们会先用eclipse搭建框架(ssm、ssh…)eclipse主要用在java的开发,但在eclipse上制作前端动态页面不方便,由此我们选择用DW来开发前端的动态页面,在制作动态网页的时候,我们会将eclipse与DW的工作站连接起来,方便初学者进行检查代码和调整界面,两者结合起来用开发java web项目...

2020-03-26 13:06:46 2191

空空如也

空空如也

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

TA关注的人

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