程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 數據結構 C#語言版 第1章 緒論(2)

數據結構 C#語言版 第1章 緒論(2)

編輯:C#入門知識

1.3 數學預備知識

集合(Set)是由一些確定的,彼此不同的成員(Member)或者元素(Element)構成的一個整體。成員取自一個更大的范圍,稱為基類型(Base Type)。集合中成員的個數稱為集合的基數(Cardinality)。

集合的特性:

1) 確定性:任何一個對象都能被確切地判斷是集合中的元素或不是。

2) 互異性:集合中的元素不能重復。

3) 無序性:集合中元素與順序無關。

1.3.4 遞歸

一個算法直接調用自己或間接地調用自己,就稱這個算法是遞歸的(Recursive)。根據調用方式不同,它分為直接遞歸(Direct Recursion)和間接遞歸(Indirect Recursion)。

遞歸算法通常不是解決問題最有效的計算機程序,因為遞歸包含函數調用,函數調用需要時空開銷。

factorial(階乘) 函數:

C++ Codes:


[cpp] //Algri.h  
#ifndef ALGRI_H  
#define ALGRI_H  
 
int factorial(int n); 
 
#endif 
//Algri.h
#ifndef ALGRI_H
#define ALGRI_H

int factorial(int n);

#endif[cpp] //Algri.cpp  
#include "Algri.h"  
#include "stdafx.h"  
 
int factorial(int n) 

    if(n<=0) 
        return -1; 
    else if(n==1) 
        return 1; 
    else 
        return n*factorial(n-1); 

//Algri.cpp
#include "Algri.h"
#include "stdafx.h"

int factorial(int n)
{
 if(n<=0)
  return -1;
 else if(n==1)
  return 1;
 else
  return n*factorial(n-1);
}
Python Codes:


[python] "Algri.py" 
def factorial(n): 
    if n<=0: 
        return -1; 
    elif n==1: 
        return 1; 
    else: 
        return n*factorial(n-1); 
"Algri.py"
def factorial(n):
    if n<=0:
        return -1;
    elif n==1:
        return 1;
    else:
        return n*factorial(n-1);[python] "Program.py" 
from Algri import factorial  
 
print factorial(10) 
"Program.py"
from Algri import factorial

print factorial(10)C# codes:


[csharp] class Program 

    static void Main() 
    { 
        Console.WriteLine(Factorial(10)); 
    } 
 
    static int Factorial(int n) 
    { 
        if (n <= 0) 
            return -1; 
        else if (n == 1) 
            return 1; 
        else 
            return n * Factorial(n - 1); 
    } 

    class Program
    {
        static void Main()
        {
            Console.WriteLine(Factorial(10));
        }

        static int Factorial(int n)
        {
            if (n <= 0)
                return -1;
            else if (n == 1)
                return 1;
            else
                return n * Factorial(n - 1);
        }
    }

 


從.Net的角度看,所謂的集合可以定義為一種對象,這種對象提供了結構化組織任意對象的方式,並且實現一個或多個ICollection、IDictionary和System.Collections.IList接口。這一定義把System.Collections名稱空間中的“內置”集合劃分成了三種類別:

(1) 有序集合:僅僅實現ICollection接口的集合。例如Stack、Queue。

(2) 索引集合:實現IList的集合,其內容經由零開始的數字檢索取出。例如ArrayList.

(3) 鍵式集合:實現IDictionary接口的集合。IDictionary集合的內容通常按鍵值方式存儲。例如Hashtable類。

摘自 xufei96的專欄
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved