- 博客(18)
- 收藏
- 关注
原创 二维数组顺时针输出
很简单的一个算法,结果弄了半天,最后发现是行和列弄错了,心塞塞 这种题还是找出数学规律重要/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open th
2016-08-25 20:22:56 1001
转载 链表操作
import java.util.HashMap;import java.util.Scanner;import java.util.Stack;/** * * * 关于java中链表的操作 * 1. 求单链表中结点的个数: getListLength * 2. 将单链表反转: reverseList(遍历),reverseListRec(递归) * 3. 查找单链表中的倒数
2016-08-24 10:19:07 271
原创 链表操作之翻转链表以及求倒数第K个节点
翻转链表没什么说的,就是注意保存上一个节点和下一个节点的信息。public Node reverseList(Node head){ Node pReversedHead=null; Node pNode=head; Node pPrev=null; while(pNode!=null){ Node pNext
2016-08-24 10:16:34 260
原创 剑指offer之数组操作
把一个数组中奇数放到前面,偶数在后。 区别奇偶数还是&0x1好用 这是用JAVA写的,好久没用过JAVA了,写这个费了一下午,累死爸爸了,和c++在细节上还是有很多的区别的。附代码:import java.util.Arrays;;public class ReorderArray { public static void Reorder (int pBegin,int temp[]){
2016-08-22 21:02:02 205
原创 剑指offer之打印1到最大的n位数
此题看上去很简单,但要考虑大数问题,所以采用定义一个char数组,如n为3,则定义一个number[4]就可以了,下面是一种算法,采用递归和非递归,递归是全排列算法。#include<iostream>#include<string.h>using namespace std;bool Increment(char* number);void PrintNumber(char* number)
2016-07-17 20:23:28 316
原创 剑指offer之一个数的N次方
求一个数的N次方,看起来简单,但实际上要考虑很多东西有很多,比如底数为0,指数为负等情况,下面是平常的算法和另外一种算法的代码:#include<iostream>#include<math.h>using namespace std;bool equal(double num1, double num2);double PowerWithUnsignedExponent(double ba
2016-07-15 21:52:39 449
原创 剑指offer之二进制中的1的个数与斐波那契数列
斐波那契数列一般教材都是用的递归long long F(unsigned int n){ if(n<=0) return 0; if(n==1) return 1; return F(n-1)+F(n-2);}但是这种方法随着n的增大,时间复杂度以指数的方式递增,所以可采用下面这种方法。long long Fibonacci2(unsigne
2016-07-15 16:13:59 590
原创 剑指offer之旋转数组的最小数字
此题是一个旋转数组如{3,4,5,1,2}这样的数组,用普通的算法自然能解出来,但二分法比较好(除非几种特殊情况) 还有就是异常的性质,以后多写一写。 看代码吧#include<iostream>#include<exception>using namespace std;//此处必须声明函数MinInOrder int MinInOrder(int* array,int index1,
2016-07-14 22:20:14 255
转载 剑指offer之替换空格
写这上面的题目,最大的感触就是作者把各种情况都考虑进去了,自己以前写代码不太注意,以后得改改,因为,好久没写过代码了,所以有好多地方参考的书上的,类型就为转载下面看代码吧,不难,但作者写的代码很精致,要学习的地方很多啊!#include<iostream>#include <string.h>using namespace std;void ReplaceBlack(char string[]
2016-07-12 17:01:41 250
转载 剑指offer之二维数组中查找一个数
题目:在二维数组中查找一个数(具体不说了,参考剑指offer书)代码如下:#includeusing namespace std;bool Find(int* matrix,int rows,int columns,int number){ bool found=false; if(matrix!=NULL&&rows>0&&columns>0) { int
2016-07-12 11:17:27 284
原创 c++栈之括号匹配问题
题目要求: 1、输入一串括号,判断是否匹配,如:{()}正确,{(})错误。 2、括号顺序正确。如{()}正确,()[]正确,([])错误利用链栈实现的该程序。代码如下:#include #
2015-11-23 22:32:09 948
原创 c++之链表实现栈
利用头插法和头结点删除的方法,实现栈储存的特点#include#include struct Node { int data; Node *next; };class myStack{ public: myStack(); void push(int a); int pop(); bool isEmpty(); int size(
2015-11-23 22:19:08 455
原创 c++之判断栈的弹出是否合法
题目:判断弹栈的顺序是否合法实现思想:首先输入要判断数据的大小的个数N,在输入压栈的顺序,再输入弹栈的顺序。输入栈的数字用数组保存,弹栈的顺序数字用栈保存。 当栈的top为数组的第一个元素时,弹出栈中元素,并删除数组中元素(利用下标实现),如果不是,则从数组当前的第一个位置找,找到该元素时,弹栈并删除数组的该元素以及之前的元素,如果栈中每个元素都
2015-11-23 20:58:41 602
原创 c++之栈的顺序表实现
利用顺序表实现栈#include#define MAX 50class myStack{ private: int data[MAX]; int size; public: myStack(); void push(int a); int pop(); int getTop(); int getSize(); bool isEm
2015-11-23 20:56:18 311
转载 c++栈之带括号的四则运算
题目要求: 实现带括号的四则运算。实现思想: 创建两个栈,保存数字和符号,根据运算级的高低,确定弹栈以及压栈(栈为模板类,因为有两个不同类型的栈)。代码#include#define MAX 50using namespace std;template class myStack{ private:
2015-11-23 20:47:37 2169 2
原创 单循环链表的倒置
核心算法: 利用链表的删除和头插法,实现链表的倒序输出(主文件中)头文件: myLink.h#includestruct Node { int data; Node *next; };class myLink{ public: myLink(); Node *head; void creatL
2015-11-06 22:39:35 879
原创 链表的基本操作
实现链表的基本运算//链表的基本操作class Linkegg{ public Node head; public int size=0; private class Node{ int data; Node next; } public boolean isEmpty(){ return head.next==null; } //初始化 public vo
2015-11-04 09:51:26 505
原创 JAVA数据结构之顺序表
题目试用顺序表表示集合,并确定合适的约定,在此基础上编写算法实现集合的交、并、差等运算 class Link{ private int size; //表示为第几个元素 private int []data; //线性表为数组形式 private int max
2015-11-04 09:40:12 582
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人