当前位置:首页 » 操作系统 » 根据算法

根据算法

发布时间: 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