算法与数据结构
文章平均质量分 72
喜欢哲学的女孩
人生苦短,何必将就
展开
-
找零钱(贪心算法)
#include#include#define MAX 9int change(int n);int a[MAX]={10000,5000,1000,500,200,100,50,20,10};int num[MAX]={0};int main(){ int i; float m; printf("输入要找的钱:"); scanf("%f",&m); c原创 2012-11-05 21:27:49 · 1134 阅读 · 0 评论 -
微软公司等数据结构+算法面试100题(第1-100题)全部出炉
本文转自:http://blog.csdn.net/v_JULY_v/article/details/6057286微软等公司数据结构+算法面试100题(第1-100题)首次完整亮相 作者:July、2010年12月6日。更新:现今,这100题的答案已经全部整理出来了,微软面试100题2010转载 2014-03-13 09:26:51 · 1442 阅读 · 0 评论 -
输入一个链表的头结点,从尾到头反过来输出每个结点的值。
对于这个问题,可以利用"栈"的后进先出的思想,将链表中的节点先入栈后再出栈,这样就可以将链表从头 到位翻转过来。从网上搜索一下,没有找到可以直接调用栈的的方法,因此要用C语言实现必须要先写完栈的基本操作(入栈、出栈、初始化),幸好以前写过一个栈的基本操作的源码,可以把它放到工程中。head.h文件#ifndef HEAD_H_#define HEAD_H_#include #inc原创 2014-03-08 14:18:30 · 1619 阅读 · 0 评论 -
抽象数据类型定义(ADT)
一、抽象数据类型定义(ADT)作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。定义:一个数学模型以及定义在该模型上的一组操作。关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一转载 2014-03-16 16:03:56 · 30474 阅读 · 0 评论 -
【数据结构】栈学习之数组实现(C语言)
问题1、结构体指针变量原创 2014-04-12 20:39:38 · 1675 阅读 · 0 评论 -
【数据结构】栈应用之进制转换
进制转换就是将十进制数zhuanhuan原创 2014-04-14 16:10:12 · 1814 阅读 · 0 评论 -
经典数据结构视频教程下载 (清华大学 严蔚敏)
可以用迅雷下载的.经典的数据结构视频教程,由清华大学数据结构教材作者严蔚敏老师主讲。HTTP 下载地址,共3.85 GB:第一章 绪论http://doworks.cn/uc/ds/ts-ywm/01.asfhttp://doworks.cn/uc/ds/ts-ywm/02.asf第二章 线性表http://doworks.cn/uc/ds/ts-ywm/03.转载 2014-03-24 15:38:11 · 6893 阅读 · 0 评论 -
【基础训练】HDOJ2028 Lowest Common Multiple Plus
求n个数的最小公倍数。方法一:先求最大公约数,然后利用公式求最小公倍数。求最大公约数使用辗转相除法。#include int ls(int a,int b){ int m; if(b == 0) m = a; else { m = ls(b,a%b); } return m;}int m原创 2016-09-29 16:25:30 · 856 阅读 · 0 评论 -
【基础训练】HDOJ2031进制转换
项目做久了,我发现自己对代码的实现能力越来越差劲了!经过前一段时间找工作的经历就可以明显感觉的到自己的代码熟练度不够!因此,今后要多加练习。要想做好一个优秀的程序员就要多敲代码,多思考。★结题思路利用了栈的思想,将整数N与R求得的余数压栈,然后将N/R与R求得的余数压栈,知道N/R小于R为止。可以利用数组来模拟栈的操作,可以将余数存入数组中然后倒序输出!★代码实现#incl原创 2014-10-27 13:15:30 · 1069 阅读 · 0 评论 -
【基础训练】HDOJ2032杨辉三角
★杨辉三角的规律是很明显的:◇每一行的第一个数和最后一个数都为1;◇从第三行开始,除去第一个数和最后一个数,其余的数都是上一行中两个数的和;◇每个实例最后一行的数字个数都等于这个实例的层数;因此这个题目的关键就是用代码将上述规律描述清楚的过程,没有复杂的数据结构和算法。★代码实现:#include static int a[100][100]; int原创 2014-10-28 09:35:25 · 1214 阅读 · 0 评论 -
【基础训练】HDOJ2033 && HDOJ2034
★本题目考察代码熟练度,没有用到数据结构和算法★代码实现#includeint main(){ int n; int AH,AM,AS,BH,BM,BS,SH,SM,SS; scanf("%d",&n); while(n --) { SH = SM = SS = 0; scanf(原创 2014-10-29 16:24:24 · 1431 阅读 · 0 评论 -
【基础训练】HDOJ2035人见人爱A^B
★要求A^B的最后三位数,一种常规的做法就是将此数的最终结果求出来然后%1000,但是题目中A与B的数可以取到10000,那么这个数就不是一般的变量类型能够存储下的;★仔细研究就会了解,要想求A^B的后三位,只需将B个A%1000,然后相乘得出的结果与A^B先求得最终结果在%1000得到的结果相同;★方法二的优点就是将大数转化成小数进行计算★程序实现:#include in原创 2014-10-30 11:38:48 · 1385 阅读 · 0 评论 -
冒泡排序(链表实现)
#include #include #include typedef struct node{ int data; struct node *next; }*BT; void BLine(BT &T,int a[10],BT &T1);//建立链表 void Arrange(BT &T,BT &T1);//对链表排序 int main(){原创 2014-02-13 11:30:16 · 1065 阅读 · 0 评论 -
二叉树的基本操作
#include #include #include typedef struct node{ int data; struct node *lchild; struct node *rchild; }*BiTree;//此处*BiTree的作用与 typedef struct node *BiTree等价 int CreateTree(B原创 2014-02-13 11:43:31 · 836 阅读 · 0 评论 -
链表反转
问题描述:将原链表(如:1-> 2 -> 3 -> 4 -> NULL)反转后生成一个链表:4->3 ->2 ->1 ->NULL。要将链表反转会碰到几个问题:(1)头节点问题。在原链表的开始出有头节点,头节点与其他节点一样,只是它的data中没有被赋值,里面是垃圾数字。那么。在遍历原链表的时候会绕过头节点直接遍历第一个节点。那么,假设我将原链表反转成功,用遍历原链表的函数去遍历反转链原创 2014-02-12 17:20:04 · 1005 阅读 · 0 评论 -
冒泡排序
#include #include void BubbleSort(int *p,int q){ int i,j,temp; for(i = 0;i < q;i++) { for(j = 0;j < q-1-i;j++) { if(p[j]>p[j+1]) {原创 2013-11-29 17:26:17 · 904 阅读 · 0 评论 -
typedef的用法
Typedef的用法(1) 可以用它来声明新的类型名来代替已有的类型名。例如:typedef int ZHANG;此时 int i;与ZHANG i;等价(2) 同样(1)中的功能也可以用在结构体中,有结构体如下:struct student{int sid;char name[10];char sex; }; 可以定义变量 st原创 2014-01-07 11:08:17 · 855 阅读 · 0 评论 -
连续数组存储
#include #include struct Arr{ int *pBase; //数组的首地址 int len;//数组的长度 int cnt;//数组的当前有效个数 };void Init_arr(struct Arr *P, int length);//初始化bool append_arr(struct Arr *P,原创 2014-01-07 12:25:05 · 1118 阅读 · 0 评论 -
数据结构之链表学习(1)
(1) 链表包括:数据域和指针域因此在用结构体定义链表的代码为typedef struct node{ int data;//数据域 struct node *pnext;//指针域}Node, *pNode;(2) 创建链表1. 介绍一个函数malloc,此函数的作用是在内存的动态存储区中分配一块连续的空间。其原型为:void *malloc(un原创 2014-01-12 02:20:21 · 965 阅读 · 0 评论 -
数据结构之链表学习(2)
主要学习了链表的三个函数:插入节点,删除节点,排序。(1)插入节点函数 1、传递的参数 参数主要有三个,链表的头结点Head,要插入的位置pos,要插入的元素的值val。 2、此函数的执行循序 首先,定义一个结构体指针变量p,方便后面的操作。然后一段代码 while(p->pnext!= NULL && i {原创 2014-01-14 01:14:34 · 1009 阅读 · 0 评论 -
数据结构之栈学习(1)
(1)什么是栈 栈是一种实现“先进后出”的存储结构。 (2)栈的表示 栈有两种存储表示方法。顺序栈和链式栈(3)栈的基本操作 初始化栈,即构造一个空栈。原创 2014-01-19 15:16:00 · 1182 阅读 · 0 评论 -
解题笔记(40)——第1-39篇合集
本文出处:http://blog.csdn.net/wuzhekai1985/article/details/6847817 2011年7月至今,解题笔记系列已有39篇文章,本文做一个归纳及索引,方便网友阅读参考。其中的题目多出自两个博客,一个是JULY的,另一个是何海涛的。上面有题目,也有解题思路及代码。 JULY的博客 http://blog.csdn.ne转载 2014-01-20 11:27:03 · 902 阅读 · 0 评论 -
数据结构之链队列
#include #include #include typedef struct QNode{ int data; struct QNode *next;}QNode,*QueuePtr;typedef struct{ QueuePtr front;//对头指针 QueuePtr rear;//队尾指针}LinkQueue;/*-------原创 2014-02-06 22:24:08 · 1482 阅读 · 0 评论 -
课程设计备份
#include#include#include#include#define SIZE 100#define INCREASE 10 struct node{ int data[100]; int length;//当前长度 }L;/////////////////////////////顺序表typedef struct tree{ int data;原创 2014-02-13 11:39:45 · 815 阅读 · 0 评论 -
算法的力量-李开复
本文转载于:http://blog.csdn.net/atupal/article/details/7957427转载 2014-01-15 00:44:34 · 655 阅读 · 0 评论 -
【基础编程】HDOJ2409 组合+错排
【1】题目分析从N个新郎中选出M个,这是组合,同时M个新郎全部找错了新娘,是错排错排的公式D(n) = (n-1)*(D(n-1)+D(n-2))【2】代码#include<stdio.h>#define MAX 21int main(){ int b,n,m,i,j; long long sum1; long long a[MAX]; a[...原创 2019-06-09 08:19:01 · 257 阅读 · 0 评论