當前位置:首頁 » 操作系統 » 根據演算法

根據演算法

發布時間: 2022-06-16 04:12:27

1. 根據演算法寫程序,幫忙看看哪裡錯了

LinkList*CreateList()
{
intdata,x;
LinkList*L;
LinkList*p;
LinkList*q;
L=(LinkList*)malloc(sizeof(LNode));
L->next=NULL;
q=L;//指針指向頭部,從頭部開始增加
printf("請輸入你的任意個整數,輸入-1表示結束 ");
printf("pleaseinputastringx:");
scanf("%d",&x);
while(x!=-1)
{
p=(LinkList*)malloc(sizeof(LNode));//建新結點
p->data=x;
p->next=NULL;
q->next=p;//指針指向新結點,原來是p=p->next,即p=NULL了
q=q->next;//指針稱到表尾
p=NULL;
printf("pleaseinputastringx:");
scanf("%d",&x);
}
q->next=NULL;
returnL;
}
//附個完整的調試程序

#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<malloc.h>
typedefintDataType;

structlist_node
{
DataTypedata;
structlist_node*next;
}list_node,LNode;

typedefstructlist_nodeLinkList;

voidPrintList(LinkList*Head)//列印表
{

LinkList*PCur=NULL;
PCur=Head;
while(PCur)
{
printf("%d->",PCur->data);
PCur=PCur->next;
}
printf("NULL ");
}

LinkList*CreateList()
{
intdata,x;
LinkList*L;
LinkList*p;
LinkList*q;
L=(LinkList*)malloc(sizeof(LNode));
L->next=NULL;
q=L;//指向頭指針
printf("請輸入你的任意個整數,輸入-1表示結束 ");
printf("pleaseinputastringx:");
scanf("%d",&x);
while(x!=-1)
{
p=(LinkList*)malloc(sizeof(LNode));//建新結點
p->data=x;
p->next=NULL;
q->next=p;//指針指向新結點
q=q->next;//指針稱到表尾
p=NULL;
printf("pleaseinputastringx:");
scanf("%d",&x);
}
q->next=NULL;
returnL;
}

intmain(void)
{
LinkList*p=CreateList();
PrintList(p);
return0;
}

2. 根據RSA演算法,選擇兩個素數p=11,q=7,設公鑰n=77,e=7,私鑰是多少

N=pq=7*11=77
(p-1)(q-1)=6*10=60
根據公式d× e ≡ 1 (mod (p-1)(q-1))
又e=7,所以 7*d≡ 1 (mod 60)。。即 7d mod 60 = 1。

7x43=301。。301除以6剛好餘1.
所以d=43

______________________________________________
下面是公式依據:

假設Alice想要通過一個不可靠的媒體接收Bob的一條私人訊息。她可以用以下的方式來產生一個公鑰和一個私鑰:

1.隨意選擇兩個大的質數p和q,p不等於q,計算N=pq。
2.根據歐拉函數,不大於N且與N互質的整數個數為(p-1)(q-1)
3.選擇一個整數e與(p-1)(q-1)互質,並且e小於(p-1)(q-1)
4.用以下這個公式計算d:d× e ≡ 1 (mod (p-1)(q-1))
5.將p和q的記錄銷毀。
e是公鑰,d是私鑰。d是秘密的,而N是公眾都知道的。Alice將她的公鑰e傳給Bob,而將她的私鑰d藏起來。

3. 已知圖的鄰接表如下所示,根據演算法,則從頂點0出發按廣度優先遍歷的結點序列是

A。

首先,認識下廣度優先遍歷,相當於樹的層序遍歷,通常藉助隊列(先進先出)實現演算法。題中從0出發,即0入隊,鄰接表訪問順序為3,2,1,則入隊順序也為3,2,1所以答案A。

例如:

深度:FCBDEA或者FCADEB

廣度:FCABDE或者FCBADE

(3)根據演算法擴展閱讀 :

從二叉樹的遞歸定義可知,一棵非空的二叉樹由根結點及左、右子樹這三個基本部分組成。因此,在任一給定結點上,可以按某種次序執行三個操作:

(1)訪問結點本身(N),

(2)遍歷該結點的左子樹(L),

(3)遍歷該結點的右子樹(R)。

以上三種操作有六種執行次序:

NLR、LNR、LRN、NRL、RNL、RLN。

前三種次序與後三種次序對稱,故只討論先左後右的前三種次序。

4. 根據c語言演算法寫程序

  1. 剛好這兩天也在玩鏈表,想寫個模板.給你一段代碼吧

  2. #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;
    }

5. 用C語言:根據給定的演算法,判斷輸入的密碼是否正確

#include<stdio.h>
void main()
{
int n,password=123456,i=1;
while(1)
{
printf("輸入密碼:");
scanf("%d",&n);
if(n==password)
printf("Welcome to use the software\n");
else
{
if(i<3)
printf("剩餘的可輸入密碼的次數為:%d\n",3-i);
else
printf("Password error ! You can not use the software\n");
i++;

}
if(i>=4||n==password)break;
}
}
這個是不需要用return的,簡明一點,初學的應該會

6. 根據演算法的定義及其重要性,請寫出單鏈表插入演算法的實現過程,並用C語言代碼實現,跪求

頭插法:
void CreateListF(LNode &L,int a[],int n)
{
LNode *s;
int i;
L = (LNode*)malloc(sizeof(LNode));
L->next = NULL;
for(int i=0;i<n;i++)
{
s= (LNode*)malloc(sizeof(LNode));
s->data = a[i];
s->next = L->next;
L->next = s; //成為新的開始
}
}

7. 根據演算法計算該身份證是男性還是女性 用python怎麼輸出

您好,這個用到機器學習識別圖像,根據模型計算的特徵值和設置的閾值,最後輸出男性或者女性。

8. 根據演算法,第五步列印數值是多少:(1)初始值x=3,s=0 (2)x=x+2

x=x+2=3+2=5,s=s+x=0+5=5;
判斷s<2009,則繼續(2);
x=x+2=7,s=s+x=5+7=12....
也就是說,s相當於一個x的累積表,只要s<2009,就一直把x的值進行加和,即5+7+9+11+...一直加到和>=2009
等差數列的公式Sn=[2na1+n(n-1)d]/2
a1=5 d=2 Sn=2009 代入得n=42.86或-46.86(舍)
再算下n=42時,Sn=1932(舍);
n=43時,Sn=2021,符合,
所以n=43即為所求,an=a1+(n-1)d=5+(43-1)*2=89

9. 根據演算法的實現位置分類,擁塞控制演算法可以分為----和----

源演算法和鏈路演算法

10. c語言根據演算法求5個數的和

#include
<stdio.h>
int
main()
{
int
s=0,i,x;
for(i=1;i<=5;i++)
{
scanf("%d",&x);
s+=x;
}
return
0;
}
簡化了下,如果你贏是要變數a的話,寫兩個for

熱點內容
動態規劃01背包演算法 發布:2024-11-05 22:17:40 瀏覽:849
nasm編譯器如何安裝 發布:2024-11-05 22:01:13 瀏覽:180
登錄密碼在微信的哪裡 發布:2024-11-05 22:00:29 瀏覽:739
c防止反編譯工具 發布:2024-11-05 21:56:14 瀏覽:247
安卓虛擬機怎麼用 發布:2024-11-05 21:52:48 瀏覽:344
php時間搜索 發布:2024-11-05 20:58:36 瀏覽:478
燕山大學編譯原理期末考試題 發布:2024-11-05 20:13:54 瀏覽:528
華為電腦出現臨時伺服器 發布:2024-11-05 20:05:08 瀏覽:408
斗戰神免費挖礦腳本 發布:2024-11-05 19:53:25 瀏覽:665
網吧伺服器分別是什麼 發布:2024-11-05 19:45:32 瀏覽:392