![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++ 基础
文章平均质量分 74
__Chilam
想学些编程
展开
-
(C++ )矩阵
template class matrix{public:matrix(int r=0,int c=0);matrix(matrix&m);~matrix(){ delete[]melem;}void input();void output();T & operator()(int i,int j);matrix&operator=(matrix&m);ma原创 2015-11-01 18:18:20 · 814 阅读 · 0 评论 -
学习算法第二篇:排序算法
1.快速排序该算法是一种运用分治思想的算法,它的主要思想是:有待排序数组S={d1,d2,d3,....dn},从中找出元素V,我们称之为划界元素,将剩下的元素中小于或等于V的元素移动到V的前面,将大于或等于V的元素移动到V的后面,这样V就找到了它的最终的排序位置,并将数组分为两个子数组S1和S2,然后利用递归,实现排序。void qsort(int a[],int low,int hig翻译 2015-10-22 09:41:22 · 411 阅读 · 0 评论 -
学习算法第三篇:查找算法
1.顺序查找顺序查找主要是针对顺序文件运行的查找指定关键记录的算法,根据物理存储地址是否相连又分为连续顺序文件和链接顺序文件。这里讲的是连续顺序文件:算法的想法十分直观简单(1)从文件的第一个记录开始,将每个记录的关键字与给定的关键字比较(2)如果找到某个记录的关键字等于key,则查找成功,返回位置;如果所有记录都进行了比较,仍未找到与k相等的记录,则给出0,表示查找失败。te翻译 2015-10-22 10:46:33 · 282 阅读 · 0 评论 -
C++ 二叉树
二叉树结点定义templateclass binarytreenode{public:binarytreenode()//空结点//{data=NULL;lchild=NULL;rchild=NULL;}binarytreenode(datatype newdata)//非空结点//{data=newdata;lchild=rchild=NULL翻译 2015-10-23 18:51:44 · 212 阅读 · 0 评论 -
C++ 散列表
templateclass hashtable{public:hashtable(int size){maxsize=size;count=0;elements=new datatype[maxsize];if(elements==NULL)exit(1);for(int i=0;ielements[i]=NULL;}~hashtable()翻译 2015-10-23 19:21:29 · 489 阅读 · 0 评论 -
C++ 队列
队列是一种元素遵循先进先出(FIFO)原则的线性结构。是在线性表的基础上实现的,队列要求只能在队尾插入元素,从队首删除元素,插入元素称为入队,删除元素称为出队。队列的定义:templateclass queue{public:queue(int size){maxsize=size;front=0;rear=0;count=0;elements=new翻译 2015-10-23 20:42:10 · 269 阅读 · 0 评论 -
C++ 栈的应用实例
有一个整数集合{23,56,11,4,87,98},将它们依此存入某数据结构,然后输出,要求输出的顺序为:11,4,56,98,87,23#include#include"stack.h"using namespace std;int main(){stacks=stack(6);int temp=0;s.push(23);s.push(56);s.push翻译 2015-10-24 12:49:56 · 654 阅读 · 0 评论 -
C++ 链表
链表也是一种线性表,它的数据逻辑组织结构也是一维的,但链表的物理结构与顺序表有很大不同,链表的物理存储结构是一堆地址任意的存储单元,也就是说,链表中的数据在内存中的物理位置可能相互邻接也不可能不邻接。链表分为单链表、双链表和循环表几类。我们从简单的单链表入手;templateclass linklist{public:linklist()//无参数构造函数//{head=n翻译 2015-10-24 14:58:30 · 299 阅读 · 0 评论 -
数论有关基本算法c+
基本数论概念1.约数 用符号d/a表示d除以a,即存在某个整数k,使得a=kd。其中a称为d的倍数。如果d/a,且d>0,则称d 是a的约数。2.素数 素数是指一个大于1的整数a,如果它只能被平凡约数1和它本身整除,那么这个数就是一个素数。3.合数 合数是一个与素数相对的概念。如果大于1的整数a,除了1和它本身之外,还能被其他整数整除,那么这个数就是一个合数。4.公约数翻译 2015-10-24 15:31:54 · 684 阅读 · 0 评论 -
水仙花数
水仙花数:一个n位数的各位数字的n次幂的和恰好等于这个n位数本身,那么这个数就叫做水仙花数。比如371=3(3)+7(3)+1(3 )题目要求:设计一个程序,找出所有3位数的水仙花数#includeusing namespace std;int jugeflower(int number)//判断一个三位数是否为水仙花数//{if(number999){cout翻译 2015-10-24 18:44:21 · 338 阅读 · 0 评论 -
三色球
题目要求:有16个球,其中白色球5个,黑色球4个,蓝色球7个,如果从中无返回任意取出10个球,请编写一个程序计算出3种颜色都有的情况下多少种颜色搭配,并输出每一种颜色搭配。分析:解决这类问题,最直接的方法就是穷举法。穷举出所有可能的解,然后再去除不符合题意要求的解,剩下的就是我们所需的解了。从上面分析来看,如果要求出所有3种颜色的搭配方案,那么我们只需要在3个都允许的范围内取值,并保证3个球的翻译 2015-10-24 19:07:22 · 423 阅读 · 0 评论 -
约瑟夫
约瑟夫问题源于一个犹太人的故事,相传在罗马入侵的时候,犹太人决定宁死不降,于是决定了一个自杀方式,所有41个人排成一个圆圈,从第一个人开始报数每报数到3人,这个人就得自杀,然后再由下一个人重新报数。直到剩下最后一个人自杀。Josephus和他的朋友不想自杀,所有他想出了一个方法,将自己与朋友安排在了巧妙的位置上,从而躲过了自杀。编写一个程序,计算出他们的位置。分析:如果他们两个人想活下原创 2015-10-27 20:27:48 · 405 阅读 · 0 评论 -
顺序表的应用实例
创建一个大小为6的整数L;输出该表的长度(为0),判断表是否为空;先插入第一个元素3,然后插入第二、第三个和第四个元素6、9、12,输出表;取出第二个元素并输出,删除第一个元素并输出;输出表以及表中所有元素。template class seqlist{public:friend void convert(seqlist&L);//友元函数seqlist(int size)原创 2015-10-28 18:42:10 · 680 阅读 · 0 评论 -
线性链表和单循环链表
templateclass linklist;template class listnode{public:friend class linklist;/*友元类*/private:T data;listnode* next;};template class linklist{public:linklist(){ head=NULL;}~link原创 2015-10-29 16:47:43 · 599 阅读 · 0 评论 -
双向链表
单链表和单循环链表的结点中只设有一个指向其直接后继的指针域,因此,从某个结点出发只能顺着指针向后访问其他结点。若需要查找结点的直接前驱,则需要从头指针开始查找某结点的直接前驱结点。如若希望从表中快速确定一个结点的直接前驱,只要在单链表的结点类型中增加一个指向其直接前驱的指针域prior即可。这样形成的链表中有两条不同的方向的链,因此称为双向链表。template class doublelin原创 2015-10-29 20:33:01 · 225 阅读 · 0 评论 -
顺序栈与栈链以及其应用
顺序栈template class seqstack{public:seqstack(int size){if(size>0){ maxsize=size;stack=new T[maxsize-1];}top=-1;}~seqstack(){delete[]stack;}void push(T x);void pop(T &x);原创 2015-10-30 10:56:59 · 258 阅读 · 0 评论 -
循环队列和链队列
template class cirqueue{public:cirqueue(int size){if(size>0){maxsize=size;queue=new T[size];front=0;rear=0;}}~cirqueue(){delete[]queue;}bool queueempty(){ return rear原创 2015-10-30 14:11:48 · 434 阅读 · 0 评论 -
字符串
/*串的顺序存储结构*/class seqstring{public:seqstring();seqstring(char*);seqstring(seqstring &t);int strlength();int strcom(seqstring t);void strcon(seqstring s,seqstring t);int index(seqstri原创 2015-10-31 21:41:02 · 318 阅读 · 0 评论 -
学习算法第一篇:排序算法
1.插入排序适合对少量元素进行排序的有效算法,插入算法采用的方法和我们平时打牌是相似的,每抽一张牌,都会按花色大小插到合适的位置。每次从数据集里拿来一个数据,就将它放置到已排序队列的正确位置。例如:有一个待排序列{4,9,7,20,3,16,18},首先是第一个数4,{(4),9,7,20,3,16,18},接下来是9,然后序列是{(4,9),7,20,3,16,18},依此如此将数逐翻译 2015-10-21 22:52:17 · 319 阅读 · 0 评论