C/C++
ly923976094
数据之路,吾将上下而求索
展开
-
C/C++学习(二)输入n个整数,输出其中最小的k个。
分析:对该你个整数进行排序,排序后进行取出前k个最小的数;#include #include using namespace std;/*题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。*/class mainK{private: int *p;原创 2015-11-23 21:16:22 · 4080 阅读 · 0 评论 -
C/C++学习(一)题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
解题分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相关技术理解的深刻程度。通常求1+2+…+n除了用公式n(n+1)/2之外,无外乎循环和递归两种思路。由于已经明确限制for和while的使用,循环已经不能再用了。同样,递归函数也需要用if语句或者条件判断语句来判断是继续递归下去还是终止递归,但现在题目已原创 2015-11-23 20:04:52 · 562 阅读 · 0 评论 -
C/C++学习(三)模板类之间继承
#include #include using namespace std;//类模板可以直接继承类模板,类型必须传递//普通类继承类模板,需要明确类型实例化类模板//类模板继承普通类,常规的操作方式//类模板当做普通类,需要模板参数对类进行实例化templateclass myclass{public: T x; myclass(T t原创 2015-11-24 20:40:34 · 427 阅读 · 0 评论 -
C/C++学习(五)冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成 算法原理冒泡排序算法的运作如下:(从后往前)1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元原创 2015-12-10 19:21:16 · 387 阅读 · 0 评论 -
C/C++学习(四)变态跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1输出:对应每个测试案例,输出该青蛙跳上一个n级的台阶总共有多少种跳法。分析:当台阶数为n时,可以分为以下步骤来完成:设第一次跳的台阶数为s,跳台阶方式数为T,则:(1原创 2015-11-24 22:15:19 · 833 阅读 · 0 评论 -
C/C++学习(九)循环双链表的操作之创建,插入、删除
双向链表循环单链表的出现,虽然能够实现从任一结点出发沿着链能找到其前驱结点,但时间耗费是O(n)。如果希望从表中快速确定某一个结点的前驱,另一个解决方法就是在单链表的每个结点里再增加一个指向其前驱的指针域prior。这样形成的链表中就有两条方向不同的链,我们可称之为双(向)链表(Double Linked List)。双链表的结构定义如下://建立一个线性双向链表的存储结构原创 2015-12-27 22:10:03 · 3360 阅读 · 0 评论 -
C/C++学习(六)线性表的插入、删除和查找
查找查找线性表是最基本的操作之一,比如根据序号查找元素的值,或者根据值查找该值是否在线性表中,如果在,那么序号是几等等。 插入如果插入的位置不合理,那么就抛出异常。如果线性表长度大于等于数组长度,则抛出异常或者动态增加容量。从最后一个元素开始向前遍历到第i个位置,分别将它们都向后移动一个位置。将要插入的元素填入位置i处。表长加1。删除如果删除位置不合理,抛出异常取出原创 2015-12-14 21:17:00 · 5833 阅读 · 0 评论 -
C/C++学习(七)单链表的头插法,尾插法,元素插入、删除和查找 .
链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的。在C语言中,链表是通过指针相关实现的。而单链表是链表的其中一种,关于单链表就是其节点中有数据域和只有一个指向下个节点的指针域。创建单链表的方法有两种,分别是头插法和尾插法。所谓头插法,就是按节点的逆序方法逐渐将结点插入到链表的头部。反之尾插法就是按节点的顺序逐渐将节点插入到链表的尾部。相对来说,头插法要比尾插法算法简单,但是最后产生原创 2015-12-20 10:28:07 · 8712 阅读 · 0 评论 -
C/C++学习(八)两个有序链表归并为一个有序链表
假设头指针为La和Lb的单链表分别为线性表LA和LB的存储结构,现要归并La和Lb得到单链表Lc,接着C/C++学习(七) #include using namespace std;templateclass T1>class linklist{public: linklist() {// p = new LNode;/原创 2015-12-27 10:56:30 · 1434 阅读 · 0 评论