第六章查找
六、查找顺序查找123456int Search(int a[],int n,int k){ for(int i = 1;i <= n; ++i) if(a[i] == k) return 1; return 0;}
折半查找(二分查找)时间复杂度:
12345678910111213int BSearch(int a[],int l,int r,int k){ int mid; while(l < r){ mid = (l + r) / 2; if(a[mid] == k) return mid; if(a[mid] > k) r = mid - 1; else l = mid + 1; } return 0;}
分块查找时间复杂度:
123456789101112131415161718192021222324 ...
第五章图
第五章图邻接矩阵基本思想:vexNum表示顶点数量,arcNum表示边数量,edges表示边(1或者权值)
1234struct MGraph{ int edge[Maxn][Maxn];//存储边 edge[i][j]=MAXN 表示两个顶点不通 int vexNum,arcNum;};
邻接表123456789101112struct ArcNode{ //边结构 int adjvex;//顶点编号一条边里 被指向的那个顶点 ArcNode *next;//指针};struct VNode{ //顶点结构 int data;//顶点信息 ArcNode *firstarc;};struct AGraph{ //表 VNode adjlist[Maxn];//存储所有顶点链表 存了所有顶点 以及他们所指向的边 int vexNum,arcNum;};
图的遍历图的深度优先遍历思想:1.首先,访问开始结点从起始结点开始任选一个相邻并未被访问的结点,访问;
2.接着,把找到的结点作为起始结 ...
第四章树和二叉树
第四章树和二叉树二叉树的存储结构1234567891011121314151617181920212223typedef int ElemType;//顺序存储结构体定义描述#define MAX_SIZE 100typedef ElemType SqBitree[MAX_SIZE];SqBiTree bt;//链式存储结构//二叉链表形式:typedef struct BTNode { ElemType data; struct BTNode *lchild,*rchild;}BTNode,*BiTree;//三叉链表形式:typedef struct BTNode{ ElemType data; struct BTNode *lchild,*rchild,*parent;}BTNode,*BiTree;void visit(BiTree T){ cout<<T->data<<" ";}
二叉树的遍历递归写法1234567891011121 ...
第三章串数组广义表
第三章串数组广义表大于输入年份且四位不同的数字123456789101112131415161718192021222324252627282930313233343536#include<iostream>using namespace std;int y;int cnt[4];int vis[10];void change(int year){ int n=year; int i=0; while(n){ cnt[i++]=n%10; n/=10; }}bool check(int year){ change(year); for(int i=0;i<10;i++) vis[i]=0; for(int i=0;i<4;i++) if(vis[cnt[i]]==0) vis[cnt[i]]=1; else{ return false; ...
第二章栈和队列
第二章栈和队列栈的基本操作123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990const int maxSize=100010;//顺序栈typedef struct{ ElemType data[maxSize];//存放栈中元素 int top;//存放栈顶指针}SqStack;/*链式栈 入栈和出栈都在表头执行,相当于只处理表头一端的单链表出栈:相当于删除链表的一个结点入栈:相当于头插法插入结点*/typedef struct LinkNode{ ElemType data; struct LinkNode *next;}*LiStack;/*共享栈:利用栈底位置相对不变的特性,让两个顺序栈共享一个数组空间,将两个栈底设置在数组的两 ...
第一章线性表
第一章线性表线性表的操作123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175#include<cstdio>#include<iostream>using namespace std;const ...
专业课C语言部分合集
C语言合集第一次作业1.输入2个整数,求两数的平方和并输出。
123456789#include<iostream>#include<cstdio>using namespace std;int main(){ int a,b; cin>>a>>b; cout<< a*a + b*b <<endl; return 0;}
2.输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
1234567891011121314#include<iostream>#define PI 3.14using namespace std;int main(){ int r; cin>>r; if(r>0){ cout<<PI*r*r<<endl; cout<<2*PI*r<<endl; }el ...
专业课第六次作业
第六次课作业 用冒泡法对一组用户输入的整数进行排序。
1234567891011121314151617181920#include<iostream>#include<cstdio>using namespace std;/*外层n-1次循环每次循环都在待排序的序列中把最大的移到待排序的最后面1~n-i-1*/int main(){ int a[10]={3,2,5,1,4,8,9,7,10,6}; for(int i=0;i<9;i++){ for(int j=1;j<=10-i-1;j++){ if(a[j]>a[j-1]) swap(a[j-1],a[j]); } } for(int i=0;i<10;i++)cout<<a[i]<<" "; return 0;}
2.将一个二维数组行和列的元素互换,存 ...
专业课第五次作业
第五次作业最大公约数和最小公倍数
1234567891011121314#include<iostream>using namespace std;int gcd(int a,int b){ return b?gcd(b,a%b):a;}int main(){ int a,b; cin>>a>>b; int c=gcd(a,b); cout<<c<<" "<<a*b/c<<endl; return 0; }
2.写一个函数,由键盘输入一个数,输出其是否为素数。
123456789101112131415161718192021222324#include<iostream>#include<cmath>using namespace std;bool prime(int a){ if(a==1) return 0; if(a==3||a==2) ret ...
专业课第四次作业
第四次作业输入一个数组,输出数组倒序的结果。
12345678910111213#include<iostream>#include<cstring>using namespace std;int main(){ int a[10]; for(int i=0;i<10;i++){ cin>>a[i]; } for(int i=9;i>=0;i--){ cout<<a[i]<<" "; } return 0;}
输入一个字符串,判断是否为回文串(回文串:从前向后输出与从后向前输出为相同的结果)
123456789101112131415161718#include<iostream>#include<cstring>using namespace std;int main(){ string a; getline(cin,a); ...



