❶ c語言遞歸演算法,主函數main能自調嗎
如果想遞歸調用main函數需要在命令行調用,所以你還是另外寫個函數然後在main函數里調用這個函數吧
❷ 有一道線性表頭部插入的演算法,有幾個地方不明白,演算法如下,根據這個演算法誰能幫我寫main函數的完整程序
z=1可以不寫在在if(x!=-1)前,只有當輸入數為-1時,z的值才會變化,等於0,循環停止,鏈表建立完成。
main函數:
int main(void)
{
linknode *head,*p;
head=createlinklist();// 建立鏈表
p=head;
while(p)
{
printf("%d\n",p->data);//鏈表以插入表頭的方式不斷插入,循環輸出時是倒序輸出的
p=p->next;
delete head;// 記得釋放內存,以免造成內存泄露
head=p;
}
getchar();
getchar();
return 0;
}
❸ 演算法的時間復雜度main(){ int i,n=153,s=0;while(n>0){s+=n%10;n=n/10;}}
不知道你說的「具體」的意思。不過這已很具體了,頂多再在最後一個}前加一條輸出語句cout << s << endl;,看看結果與你心算的是否一樣。
main(){
int i,n=153,s=0;
while(n>0){
s+=n%10;
n=n/10;
}
cout << s << endl;//加上這一句,輸出應該是9吧!
}
❹ matlab編程時為什麼結果總是main
貼一下具體程序吧,給你看一下。
是用了蟻群演算法來做優化還是什麼?結果是main表示沒有理解。
❺ os與c語言main函數的關系
os與c語言main函數的關系
c語言程序由頭文件main函數、子函數和結構體組成的。
1、頭文件:頭文件包含程序中
要調用的庫函數,程序中調用了某個庫函數,程序開始時必須寫上「#in
clude<頭文件名>或#include"頭文件
名"。
2、main函數:程序的主體部分,實現演算法的主幹
3、子函數:main函數中用到的方法,為避免main函數過長引起錯誤,會把演算法的某個過程摘出來用子函數實現。子函數在main函數中調用,在main函數外定義。
❻ 數據結構中有哪些基本演算法
數據結構中最基本的演算法有:查找、排序、快速排序,堆排序,歸並排序,,二分搜索演算法
等等。
1、用的最多也是最簡單的數據結構是線性表。
2、有前途的又難數據結構是圖 。
3、常用的80%演算法是排序和查找。
❼ 數據結構怎麼上機操作啊書上有很多演算法,可是每個程序都要經過main函數。
1.學會演算法的原理。
2.學會演算法的實現。
這兩者看似簡單,實際上很麻煩。
你的問題在於:
1.有可能是C++基礎不好,你去學習如何調用函數。
2.不知道這個演算法需要什麼輸入,也就是你還沒有做到從表面上理解這個演算法,實際上一般需要深層理解。
我認為:
1.演算法不是一個簡單的函數這么簡單,你應該還在入門階段,這時候應當將書上的代碼看懂,然後寫出去(照抄)實現,逐步在調試的過程中了解編譯器的特點,還有演算法本身的特點。
2.做些書後簡單的練習,會有助於你理解演算法。
❽ 數據結構有哪些基本演算法
數據結構是一門研究非數值計算的程序設計問題中的操作對象,以及它們之間的關系和操作等相關問題的學科。
可以理解為:程序設計 = 數據結構 + 演算法
數據結構演算法具有五個基本特徵:輸入、輸出、有窮性、確定性和可行性。
1、輸入:一個演算法具有零個或者多個輸出。以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件。後面一句話翻譯過來就是,如果一個演算法本身給出了初始條件,那麼可以沒有輸出。比如,列印一句話:NSLog(@"你最牛逼!");
2、輸出:演算法至少有一個輸出。也就是說,演算法一定要有輸出。輸出的形式可以是列印,也可以使返回一個值或者多個值等。也可以是顯示某些提示。
3、有窮性:演算法的執行步驟是有限的,演算法的執行時間也是有限的。
4、確定性:演算法的每個步驟都有確定的含義,不會出現二義性。
5、可行性:演算法是可用的,也就是能夠解決當前問題。
數據結果的基本演算法有:
1、圖搜索(廣度優先、深度優先)深度優先特別重要
2、排序
3、動態規劃
4、匹配演算法和網路流演算法
5、正則表達式和字元串匹配
6、三路劃分-快速排序
7、合並排序(更具擴展性,復雜度類似快速排序)
8、DF/BF 搜索 (要知道使用場景)
9、Prim / Kruskal (最小生成樹)
10、Dijkstra (最短路徑演算法)
11、選擇演算法
❾ 擁有順序表頭文件,怎麼寫main實現頭文件裡面這些演算法
看你程序復雜程度了
小程序就一個源文件就夠了
大程序分開寫會清晰點
頭文件定義一些常量、函數、對象
資源文件這個名詞我不太熟,不過能猜的出是 頭文件里定義的函數演算法
源文件運行
❿ 有一道線性表的求表長的演算法,有幾個地方不明白,演算法如下,根據這個演算法誰能幫我寫main函數的完整程序
演算法的思路大致就是通過參數傳入一個鏈表,p等於表頭,然後對p進行判斷,如果為空,說明為空表,返回0;如果不空,長度置為1,然後一直對後繼節點進行判斷,有效就對長度加1,直到為空,則最終得到表長;
#include <stdio.h>
#include <stdlib.h>
typedef struct linklist{
int data;
struct linklist *next;
}linklist;
linklist *create()
{
linklist *head,*p,*q;
int i=0;
int x;
head=(linklist *)malloc(sizeof(linklist));
while(1)
{
printf("please input the node:");
scanf("%d",&x);
if(x==0) {break;}
p=(linklist *)malloc(sizeof(linklist));
p->data=x;
if(++i==1)
{
head=p;
}
else
{
q->next=p;
}
q=p;
}
q->next=NULL;
return head;
}
int length(linklist *head)
{
int len=0;
linklist *p;
p=head;
if(p==NULL)
return 0;
len=1;
while(p->next)
{
len++;
p=p->next;
}
return len;
}
int main()
{
int len;
linklist *head,*s;
int pos,pos1,pos2;
int x;
head=create();
len=length(head);
printf("the link's length is %d\n",len);
return 0;
}
結構體里的名字可能不一樣,你改一下就可以了