- 博客(26)
- 收藏
- 关注
原创 数据结构 树常见算法问题
数据结构,树和二叉树常见算法算法和问题来自于试卷,辅导书,以及网络。// 二叉树的数据结构typedef struct BiTNode{ //二叉链表 char data; //默认char型,可替换 struct BiTNode *lchild,*rchild;}BiTNode, *BiTree;// 树的数据结构typedef struct { //树的双亲表示法 char data
2020-10-22 21:36:54
329
原创 数据结构 二叉树遍历专题
// 二叉树的数据结构typedef struct BiTNode{ //二叉链表 char data; //默认char型,可替换 struct BiTNode *lchild,*rchild;}BiTNode, *BiTree;1. 二叉树先序,中序,后续遍历递归算法。//先序void postorder(BiTree T){ if(T!=NULL) { visit(T); postorder(T-
2020-10-14 19:00:51
303
原创 数据结构 栈和队列常见算法问题
数据结构,栈和队列常见算法算法和问题来自于试卷,辅导书,以及网络。// 数据结构typedef struct { int data[Maxsize]; int top;}Sqstack;```//顺序栈typedef struct { int data[Maxsize]; int front,rear;}Squeue;算法3.1.1假设I,O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,可操作的序列称为合
2020-10-13 16:59:39
1091
原创 数据结构 链表常见算法问题(二)
数据结构,线性表,链表常见算法算法和问题来自于试卷,辅导书,以及网络。// 数据结构typedef struct LNode{ int data; struct Lnode *next;}LNode,*LinkList;算法2.2.11假设有两个单链表,其中元素递增排列,编写算法将这两个链表归并为一个按元素值递减次序排列的单链表,要求利用原来两个单链表的节点存放归并后的节点。分析:假设有A,B两个链表,均带有头节点,将他们的节点依次取下比较,对较小的采用头插法即可。void
2020-10-09 19:42:20
412
原创 数据结构 链表常见算法问题(一)
数据结构,线性表,链表常见算法算法和问题来自于试卷,辅导书,以及网络。//顺序表的一般数据结构typedef struct LNode{ int data; struct Lnode *next;}LNode,*LinkList;算法2.2.1设计一个递归算法,删除不带头节点的单链表L中所有值为x的节点分析:略bool deleteX(LinkList &L,int x){ LinkList *p; if(L==NULL) return 0; else if
2020-10-07 16:19:06
621
原创 数据结构 顺序表常见算法问题
//数据结构typedef struct{ int data[Maxsize]; int length;}SqList;算法2.1.1从顺序表中删除具有最小值的元素,并由函数返回被删元素值。空出位置由最后一个补齐算法很简单,基本思想可参照简单选择排序思想int deleteMin(Sqlist &L, int &e){ int i,j; if(L.length==0) return 0; min=L.data[0]; for(i=1;i<L
2020-10-04 15:55:39
2763
原创 数据结构:栈的应用:N阶汉诺塔递归。
汉诺塔问题,看似复杂,但是如果用递归的思想去解决,就十分容易了。假设有三个柱子x,y,z①当只有一个圆盘时,直接将x移动到z上②当有n个圆盘时,具体拆分为,将n-1个圆盘从x移动到y上,再将1个圆盘从x移动到z上,再将n-1个圆盘从y移动到z上,此时x为空柱,用于辅助移动。n-1个圆盘的移动又可以具体拆分,如此递归下去。//假设圆盘从上到下编号为1~nvoid hano(int n,char x,char y, char z){ if(n==0) return 0; if(n==1) m
2020-10-02 17:18:54
289
原创 数据结构:栈的应用3.4.2,中缀如何转后缀
前面已经提到,计算机计算表达式的值是通过后缀表达式实现的A+B*(C-D)-E/F是我们一般生活中经常见到的中缀表达式,转换为后缀表达式变为ABCD-*+EF/-,虽然转换可以通过手动添加括号并且后移实验,那么在计算机中如何进行这种转换呢。计算机中转后仍然要用到栈。对于待转换序列A+B*(C-D)-E/F,如果是操作数,则直接输出,如果是操作符,则压入栈中。当栈中存在操作符时,又有新的操作符时,需要判断栈中和栈外的操作符优先级,做出相应判断,若栈外运算符优先级较高时,压入栈;若栈外运算符优先级较低,
2020-10-02 17:05:12
104
原创 数据结构 栈的应用3.4 表达式求值
计算机计算表达式的值是通过后缀表达式实现的A+B*(C-D)-E/F是我们一般生活中经常见到的中缀表达式,转换为后缀表达式变为ABCD-*+EF/-.typedef struct{ int data[MaxSize]; int top;}SqStack//假设运算为整形运算,操作数为1位int opreation(int a, char op, int b){ switch(op) { case '+' :return a+b; bre
2020-10-02 16:25:09
392
原创 数据结构算法2.23 一元多项式相加
为了便于计算,一元多项式一般用链表存储,并设置两个域,存储系数和指数。typedef struct node{ int exp; //指数 float coef //系数 struct node next;}polynomial;void AddPoly(ploynomial &p,ploynomial &q,){ ploynomial pa,pb,q,pre; pa=p->next; pb=q->next; pre
2020-10-01 17:20:33
1348
原创 数据结构,栈的应用,括号匹配算法
基本思想,将括号压入一个栈当中,若是左括号,则入栈,若是右括号,则出栈一个元素,看其是否匹配,若不匹配则匹配失败。数据结构typedef struct{ char data[MaxSize]; int top;}SqStack;void push(SqStack &s; char e){ if(s.top==MaxSize) return 0; s.data[++s.top]=e;}char pop(SqStack &s; char &e){
2020-10-01 16:44:47
445
原创 数据结构 栈的应用,数进制转换
假设10进制和其他n进制数转换需要的数据结构typedef struct{ int data[MaxSize]; int top;}SqStack;void converse(SqStack s,int m,int n) //m是要转换的数,n是要转换的进制 可取2 8 16.{ top=-1; while(m) { s.data[++s.top]==m%n; m=m/n; } while(top!=-1)
2020-10-01 16:26:40
172
原创 数据结构算法2.12 将两个升序有序链表合成一个升序有序链表
假设两个链表A,B 都带头指针。基本思路:逐个比较A,B中第一个元素,选取小的,采用尾插法。数据结构:typedef struct LNode{ int data; struct LNode next;} Linklist;void mergeLinkList(Linklist &A,Linklist &B){ Linklist *p=A->next,*q=B->next ,*rear=A;//三个指针,p,q遍历A,B两个
2020-10-01 16:06:58
388
原创 数据结构算法2.2 求两个顺序表A.B的元素并集
基本思想,遍历B中线性表,并逐个与A中元素比较,如果A中没有此元素则插入。时间复杂度O(A.length*B.length)void union(Sqlist &A,Sqlist B){ int i=0,j=0; for(i=0;i<B.length;i++) //循环遍历B,找其中A中没有的元素 for(j=0;j<A.length&&A.data[j]!=B.data[i];j++) //逐个与A中元素比较
2020-10-01 15:41:07
2562
原创 数据结构算法2.1 两个有序顺序表的合并
若A,B顺序表升序排列,现在将其合成一个新的顺序表,新表仍然有序数据结构typedef struct{ int data[MaxSize]; int length;} SqList;bool merge(SqList A,SqList B,SqList &C){ int i=0,j=0,k=0; if(A.length+B.length>C.length) return 0; //表长溢出 while(i<A.length&&j<B.l
2020-10-01 15:27:39
1576
原创 数据结构—简单选择排序 C语言代码实现
简单选择排序和冒泡排序一样,都是数据结构中入门的排序算法,其基本思想是遍历待排序列找出最小(最大)的,并将其放在待排序列的第一个(最后一个)。// 选择最小,放在开头void SelectSort(int L[],int n){ int temp; int i,j,k;//i,j指示内外层循环 ,k记录最小值位置 for(i=0;i<n;i++) { k=i; for(j=i+1;j<n;j++) {
2020-09-19 15:50:42
718
原创 数据结构—快速排序 C语言代码实现
快速排序是20世纪的十大算法之一,在常见的o(nlogn)的时间复杂度的算法(快速排序,堆排序,2路归并排序)中,快速排序的平均性能也是最优的,下面是快排的c语言实现代码// 基本思想是分治法,故一般用到递归void QuickSort(int L[],int low, int high) //low和high指示排序的范围{ int temp=0; //用于存储待交换的元素的值 int i=low,j=high; if(low<high) {
2020-09-19 15:37:04
3063
原创 数据结构—冒泡排序 C语言代码实现(从前向后/从后向前两种)
冒泡排序的思想就是交换,假设要使序列排为递增如果从左到右比较,则如果左边的比较大就交换,如果从右向左比较,则右边的比较小就交换。//冒泡排序-从左到右交换void Bubblesort(int L[],int n){ int i,j; //记录内外循环 int flag,temp;//flag用来判断排序是否完成 temp用于完成交换 for(i=n-1;i>=0;i--) { flag=0; for(j=0;j<i;j++)
2020-09-19 15:14:22
1566
原创 数据结构—直接插入排序 C语言代码实现(设置和不设置哨兵两种)
void InsertSort(int L[],int n){int}//一般的方法 void InsertSort(int L[],int n){ int i,j,temp; //i记录待排元素位置,j用来寻找扎入的位置,temp记录待排元素的值 for(i=1;i<n;i++) //第一个循环,遍历待排序列 { temp=L[i]; j=i-1; while(j>=0&&temp<L
2020-09-17 17:11:40
488
原创 机器学习笔记:卷积神经网络(CNN)基础知识
卷积神经网络(CNN)一. ImageNet图像分类大赛(ILSVRC)二. 卷积神经网络结构三. 卷积神经网络举例:AlexNet一. ImageNet图像分类大赛(ILSVRC)ImageNet是针对超过1500万个物品的高分辨率图像的数据集,大约有22,000个类别。图像是从网上收集的,并由人工使用Ama-s Mechanical Turk工具进行标记。2010-2017,作为Pascal视觉对象挑战赛的一部分,举办了名为ImageNet大规模视觉识别挑战赛(ILSVRC)的年度比赛。ILSVRC
2020-06-09 21:30:10
476
原创 MATLAB中修改mat文件中变量的名称
问题:工作区下有四个.mat文件 data1 data2 data3 data4他们的变量名均为b想将他们的变量名修改为c1 c2 c3 c4代码:c1=load(‘data1.mat’);save data1.mat c1c2=load(‘data1.mat’);save data2.mat c2c3=load(‘data1.mat’);save data3.mat c3c...
2020-03-28 11:18:59
15626
6
原创 处理WampServer输入localhost显示404
处理WampServer输入localhost显示404有一段时间没用WampServer了,今天想用它做一下课设,发现输入localhost后不能正常显示之前用并没有出现这种错误,看了看wampserver的图标并不是绿色,有服务还未启动,于是挨个测试了apache服务器和MySQL的端口(80和3307)发现如下情况。。。80端口被别的进程占用了,改下端口即可在wampserver...
2019-06-28 22:17:36
3172
原创 网络应用与开发学习笔记3:Linux下发布简单的网站(PHP语言)
网络应用与开发学习笔记3:Linux下发布简单的网站(PHP语言)1.网站发布基本配置前面说了一堆软件啊安装啥的,目的就是为这一步打基础。。现在终于到最后的王站发布部分了。假设我们要发布一个简单的通讯录系统(现成写好的),需要做的步骤有哪些?1.创建一个ftp账户liubeitxl,设置密码权限,提供上传空间/Web/liubeitxl(这是我们的网站根目录,系统需经过ftp服务传到上传...
2019-06-21 23:58:41
211
原创 网络应用与开发学习笔记2:Linux下发布简单的网站(PHP语言)
网络应用与开发学习笔记2:Linux下发布简单的网站(PHP语言)之前我们已经修改好了机器名,修改了IP地址和设置了域名。详情见上一篇笔记网络应用与开发学习笔记1接下来做进一步的配置。1.FTP服务器配置首先仍然是安装软件...
2019-06-20 21:37:11
132
原创 网络应用与开发学习笔记1:Linux下发布简单的网站(PHP语言)
网络应用与开发学习笔记:Linux操作系统下发布简单的网站简单介绍两台虚拟机,一台操作系统为红帽Linux9,另一台为windows2003网页脚本语言为PHP数据库为Mysql1.修改机器名采用修改配置文件的方法修改机器名,命令vi /etc/sysconfig/network修改机器名为ybnlinux(ybn是我们老师的名字)reboot命令重启查看修改结果2.修改I...
2019-06-19 22:17:17
146
原创 sql server小型案例-自动生成销售单号的触发器
sql server实现自动生成销售单号的触发器1.有关系统最近在做信息系统课程设计的小项目,我们团队所做的是一个简单的自动贩卖机销售管理系统,其中我负责的部分是销售管理,其中需要实现的一个功能是当贩卖机商品信息表(贩卖机卡槽编号,数量)有商品售出时,自动生成一条销售记录到销售信息表中(销售单号,贩卖机卡槽编号,销售数量,销售时间,销售价格)其中,跟销售管理有关的表如下图所示。销售信息表贩...
2019-05-08 20:22:51
1140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人