- 博客(23)
- 收藏
- 关注
转载 二叉树的遍历C++实现
strcut BinTree{ ElementType Data; BinTree Left; BinTree Right;}//先序遍历递归法:void PreOrderTraversal(BinTree BT){ if(BT){ coutData; PreOrderTraversal(BT->Left); PreOrderTraversal(BT->Right);
2015-12-23 15:41:59
326
原创 二分查找
#include #define maxn 1000#define NoFound -1using namespace std;const int Record[]={5,16,39,45,51,98,100,202,226,321,368,444,501};struct StaticTable{ int Data[maxn]; int Length;};StaticTab
2015-12-17 20:33:34
366
原创 链式结构的堆栈
#include using namespace std;struct Stack{ int Data; Stack *next;};Stack *CreateStack(){ Stack *PtrS =(Stack*)malloc(sizeof(Stack)); PtrS->next=NULL; return PtrS;}void Push(Stack *PtrS,i
2015-12-17 10:03:17
302
原创 顺序结构(数组)的堆栈
#include #define maxn 1000using namespace std;struct Stack{ int Data[maxn]; int Top;};Stack *CreateStack(){ Stack *PtrS = (Stack*)malloc(sizeof(Stack)); PtrS->Top=-1; return PtrS;}void
2015-12-17 10:02:33
321
原创 链式结构线性表
#include using namespace std;struct Node{ int Data; Node *Next;};struct List{ Node *head;};List MakeEmpty(){ List list; list.head=NULL; return list;}int Length(List *list){ Node *p;
2015-12-17 10:01:10
283
原创 顺序结构(数组)线性表
#include #define maxn 1000using namespace std;struct List{ int data[maxn]; int last;};List *MakeEmpty();int FindKth(int K,List *list);int Find(int X,List *list);void Insert(int X,int i,Lis
2015-12-17 10:00:00
223
原创 单向链表的创建
#include using namespace std;struct Node{ int value; Node *next;};struct List{ Node *head; Node *last;};void add_to_end(List *list,int num);int size_of_list(List *list);int main(){ L
2015-12-15 19:25:30
259
原创 PAT1023
http://www.patest.cn/contests/pat-a-practise/1023注意点:题目中的数不超过20位,而64位long long整型只有19位,所以这里采用字符数组的形式保存整数的每一位,难点在于字符数组乘以2怎么实现。#include #define maxn 25using namespace std;int main(){ int a[10]=
2015-12-13 02:04:19
269
原创 PAT1019
http://www.patest.cn/contests/pat-a-practise/1019#include using namespace std;void print(int *a,int digit){ for(int i=digit-1;i>0;--i){ cout<<a[i]<<' '; } cout<<a[0];}int main(){ int N,
2015-12-10 02:03:49
185
原创 PAT1015
http://www.patest.cn/contests/pat-a-practise/1015 思路:用数组存储转化进制以后的各位,既可以避免溢出,也方便”反转“。#include <iostream>#include <cmath>using namespace std;bool is_prime(int num){ if(num<2){ return false
2015-12-09 23:13:21
285
原创 PAT1012
#include <iostream>#include <string>using namespace std;int N,M;struct stu_grade{ //包含学生的学号和各科成绩的结构体 string ID; unsigned int C,M,E,A;};void bestrank_print(int,s
2015-12-09 02:55:52
228
原创 PAT1011
http://www.patest.cn/contests/pat-a-practise/1011#include <stdio.h>const char s[]="WTL";int main(){ float bet[3][3]; for(int i=0;i<3;++i){ for(int j=0;j<3;++j){ scanf("%f"
2015-12-09 00:10:42
313
原创 PAT1010(BUG)
http://www.patest.cn/contests/pat-a-practise/1010 思路:都转化为10进制,然后比较大小即可。 BUG之处在于:题目中测试用的进制可能非常的大,表现为:如果把下列程序的max缩小,错误测试点会增加,而如果增加到很大,个别测试点会超时,并且long long也未必能存下这么大的数字,待学过算法以后再来解决。#include <iostream>#i
2015-12-08 23:20:50
377
原创 PAT1009
http://www.patest.cn/contests/pat-a-practise/1009 思路:用数组的下标对应指数,数组储存的值对应系数。记录每个多项式的最高次以减少运算量。#include <stdio.h>#define maxn 1005#define LOCALusing namespace std;int main(){#ifdef LOCAL freope
2015-12-08 21:18:19
384
原创 PAT1008
http://www.patest.cn/contests/pat-a-practise/1008#include <iostream>using namespace std;int elevator_go(int,int);int main(){ int N,nex,pre=0,sum=0; cin>>N; while(N--){ cin>>nex;
2015-12-07 00:37:38
233
原创 PAT1007(bug)
//http://www.patest.cn/contests/pat-a-practise/1007#include #define maxr 55000#define maxn 10005using namespace std;int seq[maxn];int sum_seq(int i,int j);int main(){ int K,cnt=0; int sum[m
2015-12-07 00:01:44
357
原创 PAT1006(A)
#include <iostream>#include <string>#define maxr 100using namespace std;string record[maxr][3];int main(){ unsigned int M; cin>>M; for(int i=0;i<M;++i){ cin>>record[i][0]>>recor
2015-12-05 00:59:42
273
原创 PAT1005(A)
http://www.patest.cn/contests/pat-a-practise/1005#include <iostream>#include <string>#include <cmath>int main(){ using namespace std; const string Num[]={"zero","one","two","three","four","f
2015-12-04 20:22:50
277
原创 PAT1002
#include <stdio.h>#define maxn 1005int main(){ int K; float NK[maxn]={0}; while(scanf("%d",&K)!=EOF){ while(K--){ int i; float temp=0.0; scanf(
2015-12-03 03:14:03
215
原创 PAT1001
#include <stdio.h>int main(){ int a,b; scanf("%d%d",&a,&b); int sum =a+b; if(sum<0){ printf("-"); sum=-sum; } if(sum>=1000000){ printf("%d,%03d,%03d\n",
2015-12-03 03:13:11
198
原创 const 指针和引用
double i = 14.2; int &ri = i; //错误,引用类型需要和被引用对象类型一致 const int &ri = i; /*正确!const的引用(常量引用)类型可以和被引用对象类型不一致,ri实际上指向字面值为14的临时常量*/ ri = 0; //错误,ri是常
2015-11-26 01:12:53
279
原创 UVa201
问题描述: 参见 https://uva.onlinejudge.org/local/online_judge/search_uva.html分析: 首先创建一个全是0的二维数组,难点在于划线这个动作的抽象,本解法针对题目中的n,选择了(2*n-1)X(2*n-1)矩阵保存,就是为了解决这个问题:比如输入H 1 1时,程序就把tab[1][1],tab[2][1],tab[3][1]全赋值1,这
2015-11-17 02:31:17
389
原创 UVa213
问题描述:https://uva.onlinejudge.org/index.phpoption=com_onlinejudge&Itemid=8&category=4&page=show_problem&problem=149问题分析: <1>首先用字符数组存储编码头 <2> 0 00 01 10 000 001 010 011 100 101 110….分别对应编码头
2015-11-16 00:39:02
442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅