导航:首页 > 源码编译 > 试编算法大全

试编算法大全

发布时间:2022-08-31 11:25:34

A. 谢谢 试编写算法,计算i!*2i的值并存入数组a

不用那么复杂。我的程序:
#include <stdio.h>

#define arrsize 10
#define maxint 10000

main () {
int i, j;
int result;
int tmp;
int a[arrsize];

tmp = 1;
for (i=1; i<=arrsize; i++) {
tmp *= i;
result = tmp * 2 * i;
if (result >= maxint)
break;
else
a[i-1] = result;
}
for (j=0; j<i-1; j++)
printf ("a[%2d] = %5d\n", j, a[j]);
getch();
}

B. 试编写算法求一元多项式

float Polynomial(int n, int a[], float x)
/* 求一元多项式的值P(x)。 */
/* 数组a的元素a[i]为i次项的系数,i=0,...,n */
{ int i;
float b=1.0, P=a[0];
if(n==0) P=a[0];
else {
for(i=1;i<=n;i++)
{ b=b*x;
P=P+a[i]*b;

}
} return P;
}

C. 试编写算法求一元多项式Pn(x)=a0+a1x+a2x2+a3x3+…anxn的值Pn(x0),

//下面是参数显式传递法计算多项式的值,全局变量的隐式传递留给你了。
#include<stdio.h>

constintMAXSIZE=60;//多项式项数

doublefx(doublean[],doublex,intn){
doubleFnx=0;
while(--n>=0)Fnx=Fnx*x+an[n];
returnFnx;
}

intmain(){
intn=0;
doublex,an[MAXSIZE];
printf("输入多项式系数('q'tofinish):");
while(scanf("%lf",&an[n])==1&&n<MAXSIZE){
++n;
printf("输入多项式系数('q'tofinish):");
}
fflush(stdin);
printf("x=");
scanf("%lf",&x);
printf("f(%lf)=%lf ",x,fx(an,x,n));
return0;
}

D. 试编写算法,计算i!×2^i的值并存入数组

编写算法计算i!×2^i的值步骤如下:

1,打开Visual Studio 2012后,单击左上角的“新建项目”。

E. 试编写一个算法,计算带头结点的循环单链表的长度

int length(struct list * head)
{
int i = 0;
struct list *tmp;
if( head == NULL)
return 0;
if( head -> next == head)
return 1;
tmp = head->next;
while(tmp != head)
{
i++;
tmp = tmp -> next;
}
return i;
}

F. 试编写一个算法 将升序的二叉排序树变为降序的二叉排序树

将一棵根为root的升序二叉排序树转为降序二叉排序树,算法思路是:
(1) 如果树root为空,算法结束;
(2) 将root的左子树转为降序二叉排序树,将root的右子树转为降序二叉排序树;
(3) 将root的左右孩子进行交换,即左孩子变为右孩子,右孩子变为左孩子。

在C语言下,用二叉链表表示二叉排序树,实现该算法的过程如下:
typedef char datatype;
typedef struct _node{
datatype data;
_node *lchild, *rchild;
}TNode, *PNode, BitTree, *PBitTnode, *PSearchTree;

void ChangeDescen(PSearchTree root) {//将根为root的升序二叉排序树转换为降序
PNode tmp;
if(root == NULL) return;
ChangeDescen(root->lchild);
ChangeDescen(root->rchild);
tmp = root->lchild;
root->lchild = root->rchild;
root->rchild = tmp;
}

G. 试编写一个算法,把单链表改变成循环链表

将单链表改成循环链表只需将单链表最后一个结点的指针指向头结点,即p->next = head。
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。其数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
循环链表也是一种链式存贮结构。和单链表相比,循环链表中最后一个结点的指针域指向头结点,整个链表形成一个环。

H. 试编写一个递归算法,由正整数序列w1,w2,...wn构造哈夫曼树

给出一个原则性的算法吧:
哈夫曼算法:
一、对给定的n个权值{W1,W2,W3,...,Wi,...,Wn}构成n棵二叉树的初始集合
F={T1,T2,T3,...,Ti,...,Tn},其中每棵二叉树Ti中只有一个权值为Wi的根结点,它的左右子树均为空,并以Ti的权值Wi的升序排列。
二、在F中选取两棵根结点权值最小的树作为新构造的二叉树的左右子树,新二叉树的根结点的权值为其左右子树的根结点的权值之和。
三、从F中删除这两棵树,并把这棵新的二叉树同样以升序排列加入到集合F中。
四、重复二和三两步,直到集合F中只有一棵二叉树为止。

阅读全文

与试编算法大全相关的资料

热点内容
在单片机中有哪些显示器 浏览:789
我的世界如何在服务器里设置货币 浏览:591
酷猫系统如何安装app 浏览:636
邮寄服务器是干什么用 浏览:159
解除电脑加密文件夹 浏览:358
androidcheckbox组 浏览:546
linux在线安装软件 浏览:823
如何设置手机安卓版 浏览:285
简历pdfword 浏览:123
锋云视频服务器网关设置 浏览:162
linux服务器如何查看网卡型号 浏览:142
加密相册误删了怎么恢复 浏览:380
安卓代练通怎么下载 浏览:518
知道域名如何查询服务器 浏览:907
方舟手游怎么才能进服务器 浏览:289
抖音算法自动爆音 浏览:24
linux修改网卡配置 浏览:913
云服务器和本地服务器数据 浏览:843
在家如何创业python 浏览:225
编译原理好课 浏览:718