自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不忘初心

方得始终

  • 博客(46)
  • 收藏
  • 关注

原创 PAT 1001. A+B Format (20)

1001. A+B Format (20)Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).In

2016-09-29 17:09:23 413

原创 Evaluate Postfix Expression

4-5 Evaluate Postfix Expression   (25分)Write a program to evaluate a postfix expression. You only have to handle four kinds of operators: +, -, x, and /.Format of functions:ElementType E

2016-09-28 22:52:32 6141 1

原创 Reverse Linked List

4-4 Reverse Linked List   (20分)Write a nonrecursive procedure to reverse a singly linked list in O(N)O(N) time using constant extra space.Format of functions:List Reverse( List L );

2016-09-28 14:29:20 3923 3

原创 Add Two Polynomials

4-3 Add Two Polynomials   (20分)Write a function to add two polynomials. Do not destroy the input. Use a linked list implementation with a dummy head node. Note: The zero polynomial is represen

2016-09-28 13:46:19 4528 3

原创 4-1 Deque (25分)

4-1 Deque   (25分)A "deque" is a data structure consisting of a list of items, on which the following operations are possible:Push(X,D): Insert item X on the front end of deque D.Pop(D): Remo

2016-09-25 16:37:38 5175

原创 插入与归并

1035. 插入与归并(25)根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下1个有序的序列。现给定原始序列和由某排序算法

2016-09-25 11:23:45 655

原创 Pop Sequence

02-线性结构4 Pop Sequence   (25分)Given a stack which can keep MMM numbers at most. Push NNN numbers in the order of 1, 2, 3, ..., NNN and pop randomly. You are supposed to tell if a given sequ

2016-09-25 09:34:05 4674

原创 Maximum Subsequence Sum

01-复杂度2 Maximum Subsequence Sum   (25分)Given a sequence of KK integers { N_1N​1​​, N_2N​2​​, ..., N_KN​K​​ }. A continuous subsequence is defined to be { N_iN​i​​, N_{i+1}N​i+1​​, ...,

2016-09-24 23:01:50 1371 1

原创 两个有序链表序列的合并

02-线性结构1 两个有序链表序列的合并   (15分)本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个递增的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType

2016-09-24 15:55:16 12963 1

原创 反转链表

1025. 反转链表(25)给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(5)、以及正整数K(

2016-09-24 15:03:35 638

原创 在一个数组中实现两个堆栈

4-7 在一个数组中实现两个堆栈   (20分)本题要求在一个数组中实现两个堆栈。函数接口定义:Stack CreateStack( int MaxSize );bool Push( Stack S, ElementType X, int Tag );ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2;Max

2016-09-24 09:25:19 6864 1

原创 排序之归并排序

要点归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序的基本思想将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个

2016-09-22 22:22:53 556

原创 PAT 1015. 德才论 (25)

1015. 德才论 (25)宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第1行给出3个正整数,分别为:N(5),即考生总数;L(>=60),为录

2016-09-22 11:14:53 445

原创 车辆排序 codeforces606C

车辆排序CodeForces 606CDescription一个无限长的铁路有一个载着n辆车的火车,每一辆车的编号从1到n。每一辆车的编号都是不同的。他们的顺序是无序的。David Blaine想要将这些车按照他们的编号从小到大排序,他可以做两种操作。第一种,他可以将一辆车从任意位置移动到所有车的第一位。第二种,他可以将一辆车从任意位置移动到所有车的最后一位。不

2016-09-21 20:21:43 1187

原创 线性表的链式存储实现(有头结点)

//线性表的链式存储实现(有头结点)#include struct node{ int element; struct node* next;};struct node* Insert(struct node* head,int i,int number){ int j=0; struct node* p; p=head; while(p

2016-09-21 19:37:12 710

原创 线性表的链式存储实现(无头结点)(陈越数据结构)

//线性表的链式存储实现(无头结点)#include struct node{ int element; struct node* next;};void Find2(struct node* head,int k){ struct node* p; p=head; int location=1; while(p&&location<k){

2016-09-21 19:20:50 1063

原创 链表带不带头结点

链表如果带头结点,那么当插入.删除时,可无返回值;但如果没有头结点,必须返回头结点(防止删除和插入改变头结点)

2016-09-21 19:19:17 694

原创 线性表的顺序存储实现(陈越数据结构版)

//线性表的顺序存储实现(陈越数据结构版)#include #include #define MAXSIZE 100struct node{ int array[MAXSIZE]; int last;//最后一个元素的下标};struct node* Init(struct node * list){ list=(struct node*)malloc(siz

2016-09-21 17:48:31 570

原创 爱丁顿数 PAT 1060

英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”E,即满足有E天骑车超过E英里的最大整数E。据说爱丁顿自己的E等于87。现给定某人N天的骑车距离,请你算出对应的爱丁顿数E(输入格式:输入第一行给出一个正整数N(5),即连续骑车的天数;第二行给出N个非负整数,代表每天的骑车距离。输出格式:在一行中给出N天的爱丁顿数。输入

2016-09-21 16:59:41 1397

原创 小熊与球 codeforces653A

DescriptionLimak是一只小熊,他有n个球,第i个球的大小是tiLimak想分别送它的三个朋友一个球,总共三个。然而送礼物不是一件容易的事,要遵循以下两个原则才能让它的三个朋友都开心: 任意两个朋友拿到的球的大小都不是相同的。任意两个朋友拿到的球的大小差距不能大于2。   举个栗子,Limak可以选择三个体积分别为4,5,3的球,或者选择三个体积为9

2016-09-21 12:32:37 486

原创 双向循环链表

//双向循环链表//有头节点#include #include struct node{ int element; struct node* next; struct node* previous;};void Insert(struct node* head,int number){ struct node* t; t=(struct nod

2016-09-21 11:58:14 376

原创 美丽的油画 codeforces 651B

Description从很久很久以前,那里有一个画展,画展有n幅画,第i幅画有一个美丽指数ai。我们知道的是,一个当游览者从一张画到一张美丽指数更高的画的时候,会变得开心。画将会一列的排放,我们可以随意安排画的顺序。那么如果游览者以从头到尾的顺序游览的画,总共最多可以变开心多少次呢。换而言之,我们需要将美丽指数重新排列,使得有最多的i (1?≤?i?≤?n?-?1),

2016-09-20 12:36:07 626

原创 HDU 2553 N皇后问题

题意:n*n棋盘要放n个皇后,要求意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45度角的斜线上,最多几种方案#include #include #include int lca[11];//存放每行皇后位置(列数)int count;//方案数int n;//棋盘规模void getcount(int row){ for(int i=1;i<=n;i++

2016-09-18 19:09:07 661

原创 中国剩余定理 poj1006

poj1006问题描述     人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个日期,分别对应于体力,情感,智力出现峰值的日期。然后再给出一个起始日期,要求从这一天开始,算出最少再过多少天后三个峰值同时出现。问题分析   

2016-09-18 15:24:16 715

原创 stack的数组实现(结构体封装版)

//栈的数组实现(结构体封装版)//-->栈被定义为结构体指针,具体数组也被定义为指针,栈动态新建#define MAXSIZE 100struct node{ int capacity;//栈容量 int top;//栈顶 int* array;//数组存具体栈元素};void Push(struct node* stack,int element){

2016-09-16 11:48:20 1196

原创 stack的单链表实现

栈有头节点,头节点后就是栈顶,即执行push操作时,插在头节点后;可以把弹出的元素放在另一个栈中;//栈的单链表实现#include struct node{ int element; struct node* next;} ;void Push(struct node* stack,int element)//栈头在stack后,即push在stack后{

2016-09-16 11:14:47 446

原创 快速排序

1045. 快速排序(25)著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定N = 5, 排列是1、3、2、4、5。则:1的左边没有元素,右边的元素都比它大,所以它可能是主

2016-09-12 20:57:24 537

原创 递归实现全排列

#include int swap(int *a,int *b){ int temp=*a; *b=*a; *a=temp;}void sort(int array[],int now,int top)//now为排到的当前下标;top为下标头{ if(now==top){ for(int i=0;i<=top;i++)

2016-09-11 11:53:28 681

原创 找到第K大数

//找到第K大数//思想:问题分解(递归实现)//先快排,左边大于等于基准数,右边小于等于基准数//左边为s1,右边为s2int FindKthLargest(int array[],int K,int left,int right)//array为array[left]到array[right]{ //先快排;左大右小 int i=left; int j=rig

2016-09-11 10:53:36 608

原创 单链表逆转

//链表逆转struct node{ int element; struct node* next;};struct node* revrese(struct node* oldhead){ struct node* newhead = NULL; struct node* temp; while(oldhead){ temp=ol

2016-09-11 10:24:22 348

原创 双链表

//双链表//head->a->b->c->NULL//head<-a<-b<-c#include struct node{ int element; struct node* previous; struct node* next;};struct node* FindPreofDelete(struct node* head,int element){

2016-09-11 09:16:02 479

原创 计算多项式值的秦九韶算法

//计算多项式值的秦九韶算法double getresult(double array[],int n,double x)//double array[];//存系数,a[0]为常数项{ double result=array[n-1]; for(int i=n-1;i>=1;i--) result=array[i-1]+result*x; return

2016-09-11 08:26:59 3676

原创 单链表--游标实现

对于一些语言,没有指针,所以用数组是实现链表的一种方式//链表的游标实现//array数组分两部分,一部分为链表部分,有一个独立头节点,下标为1//另一部分为freelist部分,也有独立的一个节点,下标为0,对于此部分,相当于一个栈//进行malloc操作时,从开头(下标0后)取空间//进行free操作时,被free的数放到开头(下标0后)#define MAXN 10str

2016-09-10 11:32:02 1982

原创 基数排序

基数排序 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,为桶排法的改进,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序。基本解法第一步

2016-09-09 22:29:59 776

原创 单链表——模拟链表

//模拟链表//利用两个数组,一个存数据,一个存“地址”//此处,right[t]存的为下标为t的元素的下一个元素的下标,最后一个下表的right[t]为0#define MAXN 5int main(){ int data[MAXN]; int right[MAXN];//right[0]相当于独立表头 memset(right,0,sizeof(right))

2016-09-08 14:09:13 432

原创 线性表的链式实现(单链表)——无独立表头的实现

//非独立表头的,插入和删除操作均麻烦一些,考虑删掉的是不是表头,是不是插在表头前struct node{ int data; struct node* next;};struct node* Insert(struct node*head,int element){ struct node* p; p=(struct node*)malloc(sizeo

2016-09-07 23:33:17 443

原创 排序之快速排序

//快排为非稳定排序,因为两个相等的元素,在选择某数为基准数的情况下,可能会互换位置,具体去想原理;//当利用C语言快排函数时,可利用结构体的优先元素排序解决不稳定的问题//快排基于分治思想//快排例程很多,自我感觉最全面可靠的是黑皮书教材上的,老美就是厉害,这一点确实得佩服人家,国内的计算机教材真心不敢恭维//几个快排例程://一:教材(赞一个)int Median3(int arr

2016-09-07 15:16:12 494

原创 排序之冒泡排序

冒泡排序 冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。

2016-09-06 23:08:47 921

原创 线性表的链式实现(单链表)——有独立表头的实现

//定义结构体,以链表中元素为int为例struct node{ int data; struct node *next;};struct node* Insert(struct node*head,int element)//相同的,插到后面{ //findprevious and insert element after the position found;

2016-09-06 22:47:51 490

原创 排序之桶排序

桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。中文名桶排

2016-09-04 23:49:32 1018

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除