数据结构与算法
文章平均质量分 64
blueamber
这个作者很懒,什么都没留下…
展开
-
选择排序
选择排序与冒泡排序类似,也是每次原创 2014-06-05 07:44:42 · 540 阅读 · 0 评论 -
冒泡排序
#includeusing namespace std;//交换元素void swap(int &a,int &b){ int t; t=a;a=b;b=t;}//输出元素void print(int s[],int n){ for(int i=0;i<n;i++) cout<<s[i]<<'\t'; cout<<endl;}//经典的冒泡算法,n个元素,比较n转载 2014-05-27 14:56:04 · 519 阅读 · 0 评论 -
霍纳法则
一﹑霍纳法则介绍假设有n+2个实数a0,a1,…,an,和x的序列,要对多项式Pn(x)= anxn +an-1xn-1+…+a1x+a0求值,直接方法是对每一项分别求值,并把每一项求的值累加起来,这种方法十分低效,它需要进行n+(n-1)+…+1=n(n+1)/2次乘法运算和n次加法运算。有没有更高效的算法呢?答案是肯定的。通过如下变换我们可以得到一种快得多的算法,即Pn(x)= anx原创 2014-06-04 08:43:47 · 1204 阅读 · 0 评论 -
计数排序
计数排序的原理:计数排序是原创 2014-06-04 15:56:38 · 915 阅读 · 0 评论 -
指针在函数中当形参时的问题
void myMalloc(char *s) //我想在函数中分配内存,再返回 { s=(char *) malloc(100); } void main() { char *p=NULL; myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么? if(p) free(p); } 程序2:void myMalloc(char **s转载 2014-04-08 21:27:48 · 994 阅读 · 0 评论 -
哈希表
说明:本程序建立的哈希表示意图:哈希函数为对哈希表长取余源代码:[cpp] view plaincopy/********************************************************************* *转载 2014-04-07 11:41:17 · 681 阅读 · 0 评论 -
C++中实现通用数据结构(转)
在程序设计当中经常会出现使用同种数据结构的不同实例的情况。例如:在一个程序中可以使用多个队列、树、图等结构来组织数据。同种结构的不同实例,也许只在数据元素的类型或数量上略有差异,如果对每个实例都重新定义,则非常麻烦且容易出错。那么能否对同种类型数据结构仅定义一次呢?答案是肯定的,C++提供的类模板(Class Template)就可以实现该功能。一、类模板类模板是C++提供转载 2014-03-09 13:33:59 · 1456 阅读 · 0 评论 -
用链表来实现学生信息的存储
链表是线性表的链式存储结构,有单链表、循环单链表、双链表、循环双链表、顺序链表。链表不能够进行随机访问,但在插入和删除数据时不需要移动元素,比顺序结构操作简单。简单程序实现:#include#includeusing namespace std;struct student//建立学生信息链表结构体{ int num; float score; str原创 2014-03-10 20:25:54 · 7207 阅读 · 0 评论 -
使用顺序表完成学生信息的存储
顺序表来存储学生信息时,学生是结构体变量,则在线性表中的元素变量都是结构体类型,线性表的每个存储单元存储一个学生的信息包括学号、年纪等其他信息。在初始化线性表数据时可以使用结构体数组的方式往线性表中放入数据,一个结构体数组成员就代表了一个线性存储单元,可以使用指针或是l.elem[i-1].var来访问位于线性表第i个位置的学生的信息。程序如下:#include#include原创 2014-03-09 13:55:30 · 9473 阅读 · 0 评论 -
用栈来实现数制转换
#include#define Init 20#define Increment 10using namespace std;struct stack{ int *top; int *base; int initstack;};void Initstack(stack &s)//建立堆栈{ s.base=(int*)malloc(Ini原创 2014-03-11 18:58:20 · 914 阅读 · 0 评论 -
冒泡排序的有趣使用
/* 将一个互不相同的四位数,把所有的数值从小到大排序后得到a,从大到小排序后得到b,然后 用b-a替换原来的数,并继续操作。*/#include#includeusing namespace std;void print(int s[],int n){for(int i=0;i<4;i++) cout<<s[i]<<'\t'; cout<<endl;}int原创 2014-05-27 11:02:01 · 1162 阅读 · 0 评论