編程題
5.1
#include <iostream>
#define PI 3.14159
using namespace std;
//重載函數
double getGirth(double length, double width)
{
return 2 * (length + width);
}
//重載函數
double getGirth(double radius)
{
return PI * radius * radius;
}
void main( )
{
cout<<getGirth(12, 10)<<endl;
cout<<getGirth(2)<<endl;
}
5.2
#include <iostream>
#include <string>
using namespace std;
class Person
{
protected:
string name;
int age;
public:
Person(){}
Person(string n, int a):name(n), age(a){};
~Person(){}
void display()
{
cout<<"姓名:"<<name<<endl;
cout<<"年齡:"<<age<<endl;
}
};
class Student : public Person
{
protected:
int sid;
public:
Student(int id, string n, int a)
{
name = n;
age =a;
sid = id;
}
~Student(){}
void display()
{
cout<<"姓名:"<<name<<endl;
cout<<"年齡:"<<age<<endl;
cout<<"學號:"<<sid<<endl;
}
};
class Teacher : public Person
{
protected:
string title;
public:
Teacher(string t, string n, int a)
{
name = n;
age =a;
title = t;
}
~Teacher(){}
void display()
{
cout<<"姓名:"<<name<<endl;
cout<<"年齡:"<<age<<endl;
cout<<"職稱:"<<title<<endl;
}
};
void main( )
{
Person p = Person("張三其", 25);
p.display();
Student s = Student(1001, "李師煊", 19);
s.display();
Teacher t = Teacher("副教授", "王五", 39);
t.display();
}
2. 什麼叫結構化的演算法為什麼要提倡結構化的演算法
結構化的演算法:由三種基本結構構成的演算法結構是結構化的演算法。
因為結構化的演算法不存在無規律的轉向,只在本基本結構內才允許存在分支和向前或向後的跳轉。不會出現死循環,使演算法的質量得到保證和提高,所以,要提倡結構化的演算法。
3. 數據結構演算法編程題,刪除帶頭結點的單鏈表中最大元素或最小元素
//刪除單鏈表中最大元素
Del-max(link a){
int tmp;
element *p;
element *max;
p=a; //指針,用於遍歷鏈表,取數與當前最大結點值比較
max=a; //指針,用於記錄最大元素所在位置(未考慮有多個最大元素)
tmp=p->data; //變數,用於記錄當前最大結點值
while(a->next!=null){
p=p->next;
if(p->data>tmp){ 、//如果當前指針所指結點值大於當前tmp所保留的值,則記錄
max=p; //當前位置(放入到max),記錄當前最大值(放入tmp)
tmp=p->data;
} //end of if
} //end of while
tmp=max->next->data; //一次遍歷後max指針所指結點就是最大元素,刪除之。。。
max->data=tmp;
max->next=max->next->next; //刪除方法能看懂么?好好思考。。。
}//end of Del-max
4. 什麼是數據結構和演算法分析在編程里起到什麼作用
編程是為了解決問題,這些問題並表都是數值計算,其所處理的數據並不都是數值,但計算機所能處理的最終是0和1的二進制串,所以需要把問題中的數據用計算機能處理的方式來表示,這就需要數據結構。
簡單的說,數據結構是數據在計算機中的表示方式,有邏輯結構和物理結構之分,如邏輯上同樣的隊列,物理上可以是順序存儲,也可以是鏈式存儲。
通俗的講,演算法就是解決問題的方法,比如同樣的排序,可以用冒泡排序、插入排序等,不同的演算法可以達到相同的目標,但是效率可能有所不同。
5. 演算法 數據結構編程(java語言)
private void sort(int[] list)
{
int[] sortlist=new int[21];
for(int i=1;i<=20;i++)
sortlist[i]=-1;
for(int i=0;i<list.Length;i++)
{
sortlist[list[i]]=list[i];
}
for(int i=0;i<sortlist.Length;i++)
{
if(sortlist[i]!=-1)
{
輸出sortlist[i];
}
}
因為已知最大值,所以遍歷演算法計算次數為常數,所以演算法復雜度為1
6. 什麼是數據結構什麼是演算法演算法與程序有什麼關系
在計算機編程領域,數據結構與演算法的應用是無處不在。比如圖像視頻處理、數據壓縮、資料庫、游戲開發、操作系統、編譯器、搜索引擎、AR、VR、人工智慧、區塊鏈等領域,都是以數據結構與演算法為基石。
數據結構與演算法屬於開發人員的基本內功,也能訓練大腦的思考能力,掌握一次,終生受益。扎實的數據結構與演算法功底,能讓我們站在更高的角度去思考代碼、寫出性能更優的程序,能讓我們更快速地學習上手各種新技術(比如人工智慧、區塊鏈等),也能讓我們敲開更高級編程領域的大門。
數據結構與演算法更是各大名企面試題中的常客,如果不想被行業拋棄、想進入更大的名企、在IT道路上走得更遠,掌握數據結構與演算法是非常有必要。
7. 編程是演算法與數據結構是不是不同語言是不一樣的
數據結構對於各編程語言都是可以用的。
數據結構重在思想,每種語言的數據結構只是根據演算法的需要進行改動,在表現形式上大同小異,數據結構是為了對數據進行操作而設計的結構。
8. 網路與編程中常用的演算法與數據結構有哪些
演算法就是計算機處理解決問題的計算機能理解的方法。
比如算一個階乘 , 計算機的演算法就是寫一個循環,從高到底, 一直乘下去,直到 1 為止。
復雜的演算法比如一個強連通帶權網路,求兩點間的最短路徑,這個很有用啊....比如採用廣度優先演算法,或深度優先演算法
數據結構指數據在計算機中存儲存在的方式。
比如文件在硬碟中,有二進制,文本等形式存放, 程序中的一組數字可能放在數組裡面,也可能在棧裡面,也肯能在鏈表裡面
9. 怎麼將數據結構的演算法變為程序
數據結構說的都是些演算法,編程的總體思路..每一個演算法思想對應著一段具體的函數實現,將基本的寫出來後,再編寫main()函數,將實際問題轉換過來,在main()函數里再調用一個一個函數(演算法實現),通過正確的參數傳遞和語句,這就是一個完整的C/C++程序