您的位置:首页 > 理论基础 > 数据结构算法

今日学习札记——数据结构基础(11.7)

2015-11-07 16:32 621 查看
1. Data can divided into two classes:
1)numerical data: int, float, complex,...
2)non-numerical data: character, string, graph, voice,...

2. Data_Structure = {D,R}
- D is a data object
- R is a limited set of relationships of all the data members in D
1)Linear structure 
2)Non-linear structure



3. Data type: Most of the Programming languages provide a group of predefined data type.
1)Atom(原子) data type - int, float, double, ...
2)Structure data type - array, struct, ...
 

4. Abstruct data type:(ADT)
思想:把一个数据类型的表示和在这个类型上的操作实现封装到一个程序模块中,用户可以直接使用它而不必知道它。

5. 简单选择排序

void selectsort(int a[ ],int n)

    {

        for (int i = 0; i < n-1; i++)

        {

            int k = i;

            for ( int j = i+1; j < n; j++)

                if ( a[j] < a[k]) k = j;

            int temp = a[i];

            a[i] = a[k];

            a[k] = temp;

        }

    }

    

6. 对数(所有的算法都是以2为底的)
定义:X^A=B if and only if logxB=A

7. 


8. 递归

(1)f(1)=1, f(2)=6, f(3)=21, f(4)=58



int f(int x)
{
if(x==0)			 	//base case
return 0;
else return 2*f(x-1)+x*x;		//recursive call
}


(2)factorial(阶乘)function    f(n)=n!



long factorial(long n)
{
if(n<=1)
return 1;
else return n*factorial(n-1);
}


(3)Fibonacci number



long fib(long n)
{
if(n==0)
return 0;
else if(n==1)
return 1;
else return fib(n-1)+fib(n-2);
}


(4)求数列和



int Rsum(int a[],int n)
{
if(n>0)
return Rsum(a,n-1)+a[n-1];
return 0;
}


(5){a,b,c}:abc, acb, bac, bca, cab, cba  置换n个元素需要n!次

void perm(char[] list, int k, int m)
{
int i;
if(k==m){
for(i=0;i<=m;i++)
cout<<list[i];
cout<<endl;
}else{
for(i=k;i<=m;i++)
{	swap(list[k],list[i]);
perm(list, k+1, m);
swap(list[k],list[i]);
}
}
}


(6)Hanoi汉诺塔问题



void moveDISKs(int n, char fromTower, char
toTower, char auxTower)
{
if ( n==1)
cout<<"move disk "<<n<<"from "<<fromTower<<" to"<<toTower<<endl;
else
{
moveDISKs(n-1, fromTower, auxTower, toTower);
cout<<"Move disk "<<n<<"from "<<fromTower<<" to "<<toTower;
moveDISKs(n-1, auxTower, toTower, fromTower);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构