编程题实训-查找

第1关:基于递归的折半查找

任务描述

请编写一个递归的折半查找算法,查找给定有序数组中的某一元素。

编程要求

输入

多组数据,每组数据有三行。第一行为数组长度n,第二行为n个递增排列的数字,第三行为需要查找的数字k。当n=0时输入结束。

输出

每组数据输出一行,如果可以找到数字,则输出“YES”,否则输出“NO”。

#include<iostream>
using namespace std;
int BinSearch_Cur(int a[],int key,int low,int high)
{//基于递归的折半查找/************begin***************/if(low <= high){int mid = low + high >> 1;if(a[mid] == key) return mid + 1;else if(a[mid] > key) return BinSearch_Cur(a,key,low,mid - 1);else return BinSearch_Cur(a,key,mid + 1,high);}return 0;/************end***************/
}
int main()
{int n;//数组长度nwhile(cin>>n){if(n==0) break;int a[100],k;for(int i=0;i<n;i++)cin>>a[i];			//输入n个递增排列的数字cin>>k;				//输入需要查找的数字kif(BinSearch_Cur(a,k,0,n-1))cout<<"YES"<<endl;elsecout<<"NO"<<endl;}return 0;
}

第2关:二叉排序树的判定 

任务描述

假设二叉树每个结点的元素均为一个单字符,根据给定的字符序列按照先序遍历的顺序递归创建该树的二叉链表,然后判断该二叉树是否为二叉排序树。

编程要求

输入

多组数据,每组数据有一行。每行为一个二叉树对应的前序序列(其中‘#’表示空树)。当序列为“#”时,输入结束。

输出

每组数据输出1行,若此二叉树为二叉排序树则输出“YES”,否则输出“NO”。

#include<iostream>
#include <string.h>
using namespace std;
typedef struct BiTNode
{char data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T,char S[],int &i)
{//先序建立二叉树if(S[i]=='#') T=NULL;else{T=new BiTNode;T->data=S[i];CreateBiTree(T->lchild,S,++i);CreateBiTree(T->rchild,S,++i);}
}
BiTree pre=NULL;   //前驱指针
void JudgeBST(BiTree T,int &flag)
{//判断二叉树T是否为二叉排序树,flag初值为1/**************begin************/if(T!=NULL&&flag){JudgeBST(T->lchild,flag);//中序遍历左子树if(pre==NULL) pre=T;     //中序遍历的第一个结点不必判断else if(pre->data<T->data) pre=T;   //前驱指针指向当前结点else flag =0;                //不是二叉排序树JudgeBST(T->rchild,flag);   //中序遍历右子树}/**************end************/
}
int main()
{char S[100];while(cin>>S){if(strcmp(S,"#")==0) break;int i=-1;int flag=1;BiTree T;CreateBiTree(T,S,++i);JudgeBST(T,flag);if(flag)cout<<"YES"<<endl;elsecout<<"NO"<<endl;}return 0;
}

 第3关:二叉排序树的限定条件下的数据输出

任务描述

已知二叉排序树采用二叉链表存储结构,根结点的指针为T,链结点的结构为(lchild,data,rchild),其中lchild、rchild分别指向该结点左,右孩子的指针,data域存放结点数据。试编写算法,从小到大输出二叉排序树中所有数值大于等于x的结点的数据。要求先找到第一个满足条件的结点后,再依次输出其他满足条件的结点。

编程要求

输入

多组数据,每组三行。第一行为二叉排序树的结点数n。第二行为空格分隔的n个数字,对应二叉排序树中的n个结点。第三行为一个数字x。n=0时输入结束。

输出

每组数据输出一行。从小到大输出大于等于x的结点数据。每个数据用空格分隔。

#include<iostream>
using namespace std;
typedef struct BSTNode
{//二叉排序树的二叉链表存储表示int data;struct BSTNode *lchild,*rchild;
}BSTNode,*BSTree;
int sum;设一个全局变量sum,为了判断该数据是否为输出的最后一个数
void InsertBST(BSTree &T,int e)
{//当二叉排序树T中不存在关键字等于e的数据元素时,则插入该元素/**************begin************/if(!T){                            //找到插入位置,递归结束BSTree S=new BSTNode;    //生产新结点*SS->data=e;               //新结点*S的数据域置为eS->lchild=NULL;          //把新结点作为叶子结点S->rchild=NULL;T=S;                     //把新结点*S链接到已找到的插入位置}else{if(e<T->data)InsertBST(T->lchild,e);      //将*S插入左子树elseInsertBST(T->rchild,e);      //将*S插入右子树}/**************end************/
}
BSTree CreateBSTree(int n)
{//构建二叉排序树BSTree T=NULL;int e;for(int i=0;i<n;i++){cin>>e;InsertBST(T,e);}return T;
}
void InOrderTraverse(BSTree T,int x)
{//中序遍历二叉树T的递归算法if(T==NULL) return;   //空树else{InOrderTraverse(T->lchild,x);//递归遍历左子树sum--;         //每次遍历时sum减1if(T->data>=x){                               //输出二叉排序树中所有数值大于等于x的结点的数据cout<<T->data;              //先输出数据if(sum==0) cout<<endl;    //如果是最后一个元素,换行else cout<<" ";           //非末位元素,输出空格}InOrderTraverse(T->rchild,x);//递归遍历右子树}
}
int main()
{int n,x;        //二叉排序树的结点数n,数字xwhile(cin>>n){if(n==0) break;BSTree T=NULL;T=CreateBSTree(n);cin>>x;          //输入数字xsum=n;          //结点数n赋给sumInOrderTraverse(T,x);}return 0;
}

第4关:基于非递归的二叉排序树的结点的查找和插入

任务描述

已知二叉树T的结点形式为(llink,data,count,rlink),在树中查找值为x的结点,若找到,则计数(count)加1;否则,作为一个新结点插入树中,插入后仍为二叉排序树。请写出其非递归算法。

编程要求

输入

多组数据,每组数据3行。第一行为二叉排序树的结点数n,第二行为空格分隔的n个数字,对应二叉排序树中的n个结点,第三行为查找的值x。n=0时输入结束。

输出

每组数据输出两行。第一行为二叉排序树的中序序列(空格分隔),第二行为其对应的计数count。

#include<iostream>
using namespace std;
typedef struct BiTNode
{int data;int cnt;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
int sum=0;        //全局变量sum表示排序树当前结点的个数,也为了判断数据是否为输出的最后一个数
void SearchBST(BiTree &T,int x)
{//基于非递归的二叉排序树的结点的查找和插入/**************begin************/BiTree s=new BiTNode;                    //生成一个数据域为x的新结点ss->data=x;s->cnt=0;s->lchild=NULL;s->rchild=NULL;if(!T)                                    //如果该树为空,则将待插入结点*s作为根结点插入到空树中{T=s;sum++;return;}BiTree q=T,f=NULL;while(q)                                //从根结点开始比较,直到结点为空{if(q->data==x)                        //如果找到该值则计数加1{q->cnt++;return;                            //函数结束}f=q;                                //如果没有找到,需要用f保存q结点//因为q指向的最后一个非空结点将会是x的父结点if(q->data>x)                        //x小于当前结点值,使指针指向左子树q=q->lchild;else                                 //x大于当前结点值,使指针指向右子树q=q->rchild;}if(f->data>x)                            //如果找不到,就将新结点插入树中{sum++;f->lchild=s;}else{sum++;f->rchild=s;}/**************end************/
}
void InOrderTraverse(BiTree T)
{//中序遍历输出二叉树T结点if(T==NULL) return;else{InOrderTraverse(T->lchild);sum--;cout<<T->data;if(sum==0)cout<<endl;elsecout<<" ";InOrderTraverse(T->rchild);}
}
void Print_Count(BiTree T,int x)
{//中序遍历输出二叉树T计数if(T==NULL) return;else{Print_Count(T->lchild,x);sum--;cout<<T->cnt;if(sum==0)cout<<endl;elsecout<<" ";Print_Count(T->rchild,x);}
}
int main()
{int n;while(cin>>n){if(n==0) break;int e;        //变量e用于接收输入数据BiTree T=NULL;for(int i=0;i<n;i++)  //基于非递归的二叉排序树的结点的查找和插入{cin>>e;SearchBST(T,e);}int x;           //查找值为xcin>>x;SearchBST(T,x);if(sum==n+1) n++; //没找到时,x作为一个新结点插入树中,此时排序树的结点数加1sum=n;InOrderTraverse(T);//中序遍历输出二叉树T结点sum=n;Print_Count(T,x);   //中序遍历输出二叉树T计数}return 0;
}

第5关:平衡二叉树的高度的计算

任务描述

假设一棵平衡二叉树的每个结点都标明了平衡因子b,设计一个算法,求平衡二叉树的高度。

编程要求

输入

多组数据,每组数据一行,为平衡二叉树的先序序列。输入的数字为该节点的平衡因子。当序列为“#”时,输入结束。

输出

每组数据输出一行,为平衡二叉树的高度。

#include<iostream>
#include <string.h>
using namespace std;
typedef struct BiTNode
{char data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T,char S[],int &i)
{//先序建立二叉树if(S[i]=='#')T=NULL;else{T=new BiTNode;T->data=S[i];CreateBiTree(T->lchild,S,++i);CreateBiTree(T->rchild,S,++i);}
}
int Height(BiTree T)
{//求平衡二叉树T的高度/**************begin************/int level = 0;BiTree p = T;while(p){level++ ; if(p -> data < 0) p = p -> rchild;else p = p -> lchild;}return level;/**************end************/
}
int main()
{char S[100];//如果平衡因子b=-1,会被字符数组割裂成'-'和'1',故本题输入样例不包含b=-1while(cin>>S){if(strcmp(S,"#")==0) break;int i=-1;BiTree T;CreateBiTree(T,S,++i);cout<<Height(T)<<endl;}return 0;
}

第6关:基于链地址法的散列表的插入

任务描述

请写出在散列表中插入关键字为k的一个记录的算法,设散列函数为H,H(key)=key%13,解决冲突的方法为链地址法。

编程要求

输入

多组数据,每组三行,第一行为待输入的关键字的个数n,第二行为对应的n个关键字,第三行为需要插入的关键字k。当n=0时输入结束。

输出

每组数据输出用链地址法处理冲突的散列表。

#include<iostream>
using namespace std;
typedef struct LNode
{int data;struct LNode *next;
}LNode,*LinkList;
LinkList H[13];    //链地址法,13个单链表
void Hash(int e)
{//基于链地址法的散列表的插入/**************begin************/int index=e%13;       //计算散列地址LinkList p=H[index];   //工作指针p指向链表的头结点while(p->next)         //移至表尾p=p->next;LinkList q=new LNode;    //生成新结点*qq->data=e;               //将新结点*q的数据域置为eq->next=NULL;            //将新结点*q插入在尾结点*p之后p->next=q;/**************end************/
}
void Input(int n)
{//输入数据for(int i=0;i<13;i++)     //建立13个带有头结点的单链表{H[i]=new LNode;H[i]->next=NULL;}while(n--)          //输入n个关键字,构造散列表{int e;cin>>e;Hash(e);}
}
void Output()
{//输出数据for(int i=0;i<13;i++){cout<<i;                 //输出散列地址LinkList p=H[i]->next;   //p初始化为链表的首元结点while(p){cout<<" "<<p->data;p=p->next;}cout<<endl;}
}
int main()
{int n;while(cin>>n){if(n==0) break;Input(n);     //输入数据int k;      //需要插入的关键字kcin>>k;Hash(k);Output();  //输出数据}return 0;
}

第7关:基于链地址法的散列表的删除 

任务描述

请写出在散列表中删除关键字为k的一个记录的算法,设散列函数为H,H(key)=key%13,解决冲突的方法为链地址法。

编程要求

输入

多组数据,每组三行,第一行为待输入的关键字的个数n,第二行为对应的n个关键字,第三行为需要删除的关键字k。当n=0时输入结束。

输出

每组数据输出用链地址法处理冲突的散列表。

#include<iostream>
using namespace std;
typedef struct LNode
{int data;struct LNode *next;
}LNode,*LinkList;
LinkList H[13];   //链地址法,13个单链表
void Hash(int e)
{//基于链地址法的散列表的插入int index=e%13;       //计算散列地址LinkList p=H[index];   //工作指针p指向链表的头结点while(p->next)         //移至表尾p=p->next;LinkList q=new LNode;    //生成新结点*qq->data=e;               //将新结点*q的数据域置为eq->next=NULL;            //将新结点*q插入在尾结点*p之后p->next=q;
}
void Input(int n)
{//输入数据for(int i=0;i<13;i++)     //建立13个带有头结点的单链表{H[i]=new LNode;H[i]->next=NULL;}while(n--)          //输入n个关键字,构造散列表{int e;cin>>e;Hash(e);}
}
void Delete(int e)
{//基于链地址法的散列表的删除/**************begin************/int index=e%13;      //计算散列地址LinkList p=H[index];   //工作指针p指向链表的头结点while(p->next)         //p指向待删除结点的前一个结点,找不到待删除结点时,p最终指向表尾结点{if(p->next->data==e)break;p=p->next;}if(p->next!=NULL)    //p没指向表尾结点时{LinkList q=p->next;p->next=q->next;delete q;}/**************end************/
}
void Output()
{//输出数据for(int i=0;i<13;i++){cout<<i;                 //输出散列地址LinkList p=H[i]->next;   //p初始化为链表的首元结点while(p){cout<<" "<<p->data;p=p->next;}cout<<endl;}
}
int main()
{int n;while(cin>>n){if(n==0) break;Input(n);     //输入数据int k;cin>>k;Delete(k);  //需要删除的关键字kOutput();  //输出数据}return 0;
}

第8关:基于快排思想的查找

任务描述

借助于快速排序的算法思想,在一组无序的记录中查找给定关键字值等于key的记录。设此组记录存放于数组r[l..n]中。若查找成功,则输出该记录在r数组中的位置及其值,否则显示“not find”信息。

编程要求

输入

多组数据,每组数据三行。第一行为序列的长度n,第二行为序列的n个元素(元素之间用空格分隔,元素都为正整数),第三行为要查找的key值。当n等于0时,输入结束。

输出

每组数据输出一行。如果查找成功,输出key在数组中的位置(1到n)和key的值,两个数字之间用空格隔开。如果查找失败,输出“not find”。

#include<iostream>
using namespace std;
int Search(int r[],int low,int high,int key)
{//基于快排思想的查找/**************begin************/while(low<high){if(r[low]>key&&r[high]<key)      //如果关键字小于数组下界的值且大于数组上界的值,更新指针high和low{high--;low++;}while(low<=high&&r[high]>key) high--;   //从右侧开始找到第一个不大于关键字的记录,其位置为highif(r[high]==key) return high;           //查找成功返回其位置while(low<=high&&r[low]<key) low++;     //从左侧开始找到第一个不小于关键字的记录,其位置为lowif(r[low]==key) return low;             //查找成功返回其位置}cout<<"not find"<<endl;     //查找失败return 0;/**************end************/
}
int main()
{int n;while(cin>>n){if(n==0) break;int r[n],key;for(int i=0;i<n;i++)   //输入数据cin>>r[i];cin>>key;       //输入要查找的key值if(Search(r,0,n-1,key))    //如果查找成功cout<<Search(r,0,n-1,key)+1<<" "<<key<<endl;  //输出key在数组中的位置(1到n)和key的值}
}

第9关:查找链表倒数第k个结点

任务描述

已知一个带有表头结点的单链表,结点结构为(data,link),假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。

编程要求

输入

多组数据,每组数据两行。第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔,元素都为正整数)。当n等于0时,输入结束。第三行为要查询链表的倒数索引k。

输出

输出数据一行。若查询到值则输出值,否则不输出。

#include <iostream>
#define MAXSIZE 100
#define OK 1
#define ERROR 0
using namespace std;
typedef struct LNode
{int data;struct LNode *next;
}LNode,*LinkList;
void CreateList_R(LinkList &L,int n)
{//后插法创建单链表L=new LNode;L->next=NULL;LinkList r=L;for(int i=0;i<n;i++){LinkList p=new LNode;cin>>p->data;p->next=NULL;r->next=p;r=p;}
}
int Search_k(LinkList L,int a[],int k)
{//查找链表倒数第k个结点
//通过一趟遍历把该链表的结点都存入到一个辅助数组中,再通过数组下标可直接获取倒数第k个结点,但这样会需要额外的存储空间,因此空间复杂度为O(n)/**************begin************/LinkList p=L->next;          //初始化指针p指向首元结点int length=0;               //length记录链表长度,也是数组元素的个数while(p!=NULL){a[length++]=p->data;p=p->next;}if(k>length) return ERROR;else cout<<a[length-k]<<endl;return OK;/**************end************/
}
int main()
{int n;while(cin>>n){if(n==0) break;LinkList L;CreateList_R(L,n);int k,a[MAXSIZE];cin>>k;Search_k(L,a,k);}return 0;
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/595380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XCTF-Misc1 USB键盘流量分析

m0_01 附件是一个USB流量文件 分析 1.键盘流量 USB协议数据部分在Leftover Capture Data域中&#xff0c;数据长度为八个字节&#xff0c;其中键盘击健信息集中在第三个字节中。 usb keyboard映射表&#xff1a;USB协议中HID设备描述符以及键盘按键值对应编码表 2.USB…

PC网站或H5网站接入客服系统

网页链接接入 PC网站或H5网站可以通过多种方式接入客服系统&#xff0c;直接访问或跳转聊天链接&#xff0c;是最简单的一种方式 获取聊天链接 前往【部署】【团队设置】【网站接入】可以找到聊天链接&#xff0c;直接把该链接放入自己网站的任何位置&#xff0c;就可以点击直…

视觉SLAM中的PnP原理以及计算过程是什么

目录 1. 特征点的选择与匹配 2. 摄像机校准 3. 使用PNP算法估计姿态 4. 结果优化 5. 错误处理 注意事项 SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;中的PNP&#xff08;Perspective-n-Point&#xff09;是一个计算机视觉问题&#xff0c;用于估…

Ansible的Shell命令配置自动补全

一、【Ansible简介】 Ansible一词据笔者所知最早来源于小说《安德的游戏》&#xff0c;其中的人族势力为了解决星际间远距离通信对星舰控制的延迟问题&#xff0c;作者贴心的虚构了一个叫做安塞波的概念&#xff0c;这个概念甚至在之后被很多小说复用&#xff0c;比如《盲视》…

判断完全数-第11届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第27讲。 判断完全数&#…

【Vue2+3入门到实战】(22)VUE3之组合式API - setup、reactive和ref函数、computed、watch、生命周期函数详细讲解

目录 一、组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. <script setup>语法糖 二、组合式API - reactive和ref函数1. reactive2. ref3. reactive 对比 ref 三、组合式API - computed四、组合式API - watch1. 侦听单个数据2. 侦听多个数据…

图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)

一、图的遍历的定义&#xff1a; 从图的某个顶点出发访问遍图中所有顶点&#xff0c;且每个顶点仅被访问一次。&#xff08;连通图与非连通图&#xff09; 二、深度优先遍历&#xff08;DFS&#xff09;&#xff1b; 1、访问指定的起始顶点&#xff1b; 2、若当前访问的顶点…

Linux下误删除后的恢复操作测试之extundelete工具使用

一、工具介绍 extundelete命令的功能可用于系统删除文件的恢复。在使用前&#xff0c;需要先将要恢复的分区卸载&#xff0c;以防数据被意外覆盖。 语法格式&#xff1a;extundelete [参数] 文件或目录名 常用参数&#xff1a; --after 只恢复指定时间后被删除的文件 --bef…

【力扣100】35.搜索插入位置 || 二分查找

添加链接描述 class Solution:def searchInsert(self, nums: List[int], target: int) -> int:nlen(nums)i,j0,n-1while i<j:midi(j-i)//2if nums[mid]target:return midelif target<nums[mid]:jmid-1else:imid1 #包含两种情况&#xff0c;1.target在mid右边…

基于Java SSM框架实现健康管理系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现健康管理系统演示 JSP技术 JSP是一种跨平台的网页技术&#xff0c;最终实现网页的动态效果&#xff0c;与ASP技术类似&#xff0c;都是在HTML中混合一些程序的相关代码&#xff0c;运用语言引擎来执行代码&#xff0c;JSP能够实现与管理员的交互&#xf…

uniapp上传图片,上传头像,多张图片上传,图片回显,图片删除,图片预览

效果图&#xff1a; 上代码不废话&#xff1a; <template><view class"familyCreateMemory"><view class"box"><view class"title"><view>文字&#xff1a;</view><textarea :maxlength"-1"/…

常见UserAgent 查看常见的微信、支付宝、抖音、浏览器等常见UserAgent

常见UserAgent解析&#xff1a;微信、支付宝、抖音与浏览器 在互联网的交互中&#xff0c;UserAgent扮演着一个不可或缺的角色。它是一个由客户端浏览器发送给服务器的字符串&#xff0c;包含了关于浏览器类型、版本、操作系统等信息。通过解析UserAgent&#xff0c;服务器可以…

<sa8650>sa8650 CDT-之-汽车CDT配置用户指南(下)

<sa8650>sa8650 CDT-之-汽车CDT配置用户指南(下) 3 设备树3.1 匹配CDT与DTS3.2 修改CDT信息,以选择不同的设备树4 CDT的使用4.1 CDT在TZ中的使用4.2 CDT在主机中的使用(QNX)4.3 在安卓系统中使用CDT5 计划/条款CDT5.1 程序CDT使用TRACE325.2 程序CDT使用PCAT与窗口机器5…

自制数据库空洞率清理工具-C版-02-EasyClean-V1.1(支持南大通用数据库Gbase8a)

一、环境信息 名称值CPUIntel(R) Core(TM) i5-1035G1 CPU 1.00GHz操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2Gbase8a版本8.6.2-R43.34.27468a27EasyClean版本V1.1 二、简述 工作和兴趣相结合的产物&#xff0c;既能更好的完成工作&#xff0c;也能看看自…

Git、TortoiseGit进阶

1.安装Git、TortoiseGit和汉化包 Git官网: Git TortoiseGit和汉化包: Download – TortoiseGit – Windows Shell Interface to Git 2.常用命令 创建仓库命令 git init初始化仓库git clone拷贝一份远程仓库,也就是下载一个项目。提交与修改 git add添加文件到暂存区git…

民安智库(第三方市场调研公司):餐饮企业顾客满意度调查,赢得口碑的关键

在餐饮行业&#xff0c;顾客满意度调查是至关重要的一环。通过对顾客的反馈进行调查和分析&#xff0c;可以了解顾客的需求和期望&#xff0c;从而针对性地改进产品和服务&#xff0c;提升顾客满意度和忠诚度。本文将分享民安智库在餐饮企业顾客满意度调查方面的实践经验。 在…

微信小程序-页面开发

文章目录 微信小程序第二章2. 页面开发2.1 创建开发页面2.2 修改项目首页2.3 页面的结构和样式设计2.3.1 WXML结构设计2.3.1.1 什么是WXML2.3.1.2 WXML的常见标签2.3.1.3 WXML的特点 2.3.2 WXSS样式设计2.3.2.1 什么是WXSS 2.4 组件库的使用和自定义组件2.4.1 小程序中的组件分…

java基于SSM的校内信息服务发布系统的设计与实现+vue论文

校内信息服务发布系统的设计与实现 摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定校内信息服务发…

竞赛保研 基于机器视觉的手势检测和识别算法

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

MySQL创建用户并赋予数据库权限

1、创建用户 create user 用户名% identified by 密码; create user test% identified by 123; 2、赋予数据库权限 grant all privileges on 数据库名称.* to 用户名%; grant all privileges on dbname.* to test%;