演算法寫
剛好這兩天也在玩鏈表,想寫個模板.給你一段代碼吧
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedefintDataType;//數據類型,如果這里更改了類型,
//要注意更改鏈表輸出函數中輸出格式.
struct_Node
{
DataTypedata;
struct_Node*next;
}Node;
typedefstruct_Nodelist_single;
list_single*Node_Create(DataTypedata)//新建結點
{
list_single*p=NULL;
p=(list_single*)malloc(sizeof(list_single));
if(p==NULL)
{
printf("mallocfair! ");
exit(1);
}
p->data=data;
p->next=NULL;
//printf("data=%d ",p->data);
returnp;
}
voidPush_Back(list_single*head,DataTypedata)//表尾添加
{
list_single*p=NULL;
if(head==NULL)
{
head=Node_Create(data);
p=head;
}
else
{
p=head;
while(p->next)
{
p=p->next;
}
}
p->next=Node_Create(data);
}
voidList_Print(list_single*head)//列印鏈表
{
list_single*p=head;
printf("Head");
while(p->next)
{
p=p->next;
//printf("%3c",p->data);
printf("->%d",p->data);//注意保持這個輸出格式與DataType一致
}
printf(" ");
}
intList_Count(list_single*head)//表長
{
intk=0;
list_single*p=head;
while(p->next)
{
p=p->next;
k++;
}
returnk;
}
list_single*List_Create(void)//建表
{
intx;
list_single*head=NULL;
list_single*p=NULL;
head=Node_Create(NULL);//建頭結點
p=head;
if(p==NULL)
{
printf("mallocfair! ");
exit(1);
}
printf("輸入一個數x ");//追加結點
scanf("%d",&x);
while(x!=-1)
{
Push_Back(p,x);//追加結點到表尾,或者只用下面兩句代碼,效果一樣
//p->next=Node_Create(x);
//p=p->next;
scanf("%d",&x);
}
returnhead;//返回表頭
}
intmain()
{
list_single*p;
p=List_Create();//建表
List_Print(p);//輸出
printf("Size:%d ",List_Count(p));//輸出表長
return0;
}
⑵ 簡便演算法寫過程
⑶ 大家幫幫忙啊!算出來,吧演算法寫一下啊!
第一步:21÷3=7算出一個戴博士帽的小熊等於7。第二步:19-7÷2=6算出一輛載著沒帶博士帽小熊的車等於6.第三步:15-6-7=2算出一個博士帽等於2.最後一步很關鍵,坑在最後一步,第一個小熊沒帶博士帽也就是7-2=5,兩個博士帽2+2=4,最後一輛車里沒有小熊用6-5=1.最後答案是5+4×1=9.完美收官
⑷ 遞推控制演算法怎麼寫
遞推控制演算法寫如下
遞推控制演算法的首要問題是得到相鄰的數據項間的關系(即遞推關系)。遞推演算法避開了求通項公式的麻煩,把一個復雜的問題的求解,分解成了連續的若干步簡單運算。一般說來,可以將遞推演算法看成是一種特殊的迭代演算法。
⑸ 請問這是用哪種演算法寫出來的
用的是遞歸演算法。
在計算機科學中是指一種通過重復將問題分解為同類的子問題而解決問題的方法。遞歸式方法可以被用於解決很多的計算機科學問題,因此它是計算機科學中十分重要的一個概念。
⑹ 演算法編寫方法
C語言程序也是演算法的一種形式,以後老師讓你寫演算法的時候你就寫程序吧,他會給你滿分的。
演算法是一種簡化的、抽象的程序,是通俗語言加上一些邏輯格式對程序過程的描述,它不是程序,但是所有的程序員都能把它翻譯為自己會的那種程序。
⑺ 怎樣才能把演算法寫好啊
看透《數據結構》,多寫程序
⑻ 演算法寫一下,急
一、演算法分析的基本方法
二、演算法設計的基本策略
⑼ 如何用語句和演算法寫程序
演算法步驟:第一步,要確定表示和的變數s和計數變數i,並賦值,一般情況下,賦s=0 i=0;第二步,確定使用哪種循環結構,本題使用當型循環結構,確定判斷條件i≤9 滿足條件時,執行第三步,不滿足條件時,執行第四步;第三步:執行,i=i+1;第四步:輸出s;程序結束.程序如下:S=0i=0WHILE i<=9 S=S+1/2^i i=i+1ENDPRINT SEND運行該程序,輸出:S=1.9980. 解析 分 析: 演算法分析: 第一步 選擇一個變數S表示和,並賦給初值0 再選取一個循環變數i,並賦值為0;第二步 開始進入WHILE循環語句,首先判斷i是否小於9;第三步 為循環表達式(循環體) 用WEND來控制循環;第四步 用END來結束程序. 根據演算法語句編寫相應的程序語言,見參考答案.試題 解析: 演算法步驟:第一步,要確定表示和的變數s和計數變數i,並賦值,一般情況下,賦s=0 i=0;第二步,確定使用哪種循環結構,本題使用當型循環結構,確定判斷條件i≤9 滿足條件時,執行第三步,不滿足條件時,執行第四步;第三步:執行,i=i+1;第四步:輸出s;程序結束.可寫出程序如下:S=0i=0WHILE i<=9 S=S+1/2^i i=i+1ENDPRINT SEND運行該程序,輸出:S=1.9980. (12分) 考點: 程序語言.
⑽ 演算法的三種基本結構是
演算法有順序結構、條件分支結構、循環結構三種基本邏輯結構。
1、順序結構:順序結構是最簡單的演算法結構,語句與語句之間,框與框之間是按從上到下的順序進行的,它是由若干個依次執行的處理步驟組成的。
它是任何一個演算法都離不開的一種基本演算法結構。順序結構在程序框圖中的體現就是用流程線將程序框自上而下地連接起來,按順序執行演算法步驟。
2、條件結構:
條件結構是指在演算法中通過對條件的判斷,根據條件是否成立而選擇不同流向的演算法結構。
條件P是否成立而選擇執行A框或B框。無論P條件是否成立,只能執行A框或B框之一,不可能同時執行A框和B框,也不可能A框、B框都不執行。一個判斷結構可以有多個判斷框。
3、循環結構
在一些演算法中,經常會出現從某處開始,按照一定條件,反復執行某一處理步驟的情況,這就是循環結構,反復執行的處理步驟為循環體,顯然,循環結構中一定包含條件結構。循環結構又稱重復結構,循環結構可細分為兩類:
一類是當型循環結構,如下左圖所示,它的功能是當給定的條件P成立時,執行A框,A框執行完畢後,再判斷條件P是否成立,如果仍然成立,再執行A框,如此反復執行A框,直到某一次條件P不成立為止,此時不再執行A框,離開循環結構。
另一類是直到型循環結構,如下右圖所示,它的功能是先執行,然後判斷給定的條件P是否成立,如果P仍然不成立,則繼續執行A框,直到某一次給定的條件P成立為止,此時不再執行A框,離開循環結構。
(10)演算法寫擴展閱讀
共同特點
(1)只有一個入口和出口
(2)結構內的每一部分都有機會被執行到,也就是說對每一個框來說都應當有一條從入口到出口的路徑通過它,如圖中的A,沒有一條從入口到出口的路徑通過它,就是不符合要求的演算法結構。
(3)結構內不存在死循環,即無終止的循環。