数据结构中的算法怎样转化为可执行的c语言程序啊?

voidMergeList(ListLa,ListLb,List&Lc){//算法2.2//已知线性表La和Lb中的元素按值非递减排列。//归并La和Lb得到新的线性表L... void MergeList(List La, List Lb, List &Lc) { // 算法2.2
// 已知线性表La和Lb中的元素按值非递减排列。
// 归并La和Lb得到新的线性表Lc,Lc的元素也按值非递减排列。
int La_len, Lb_len;
ElemType ai, bj;
int i=1, j=1, k=0;
InitList(Lc);
La_len = ListLength(La);
Lb_len = ListLength(Lb);
while ((i <= La_len) && (j <= Lb_len)) { // La和Lb均非空
GetElem(La, i, ai);
GetElem(Lb, j, bj);
if (ai <= bj) {
ListInsert(Lc, ++k, ai);
++i;
} else {
ListInsert(Lc, ++k, bj);
++j;
}
}
while (i <= La_len) {
GetElem(La, i++, ai); ListInsert(Lc, ++k, ai);
}
while (j <= Lb_len) {
GetElem(Lb, j++, bj); ListInsert(Lc, ++k, bj);
}
} // MergeList
麻烦可以给我把这个算法转化为可执行的c语言程序吗?我想要一个模板,谢谢
展开
 我来答
yesyes科
2020-02-23 · TA获得超过2.6万个赞
知道答主
回答量:608
采纳率:0%
帮助的人:9.8万
展开全部

1、Fibonacci数列算法:Fibonacci数列有如下特点:第1,2两个数的值为1,从第3个数开始,该数是其前面两个数之和。

2、即:F1=1(n=1),F2=1(n=2),F3=F(n-1)+F(n-2)(n>=3)。运行看看。

3、数的排列之冒泡法也叫起泡法:排序的方法有两种:一种是“升序”,从小到大,一种是“降序”,从大到小。

4、每次将相邻的两个数比较。将小的调到前头。若有6个数:9,8,5,4,2,0。第一次将最前面的8和9对调。第二次将第二和第三个数对调。。。。。。如此共进行5次,得到8-5-4-2-0-9的顺序。

5、打擂台算法的思路:打擂台算法怎么确定最后的优胜者。先找任一人上台,第二个人上去与之比武,胜者留在台上,再上去第三个人与刚才得胜的人比武,胜者留,败者下。

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
方鸿晖09
推荐于2017-10-07 · TA获得超过1008个赞
知道小有建树答主
回答量:225
采纳率:66%
帮助的人:111万
展开全部
首先要确定你想采用线性表的顺序存储结构还是链式存储结构。
以顺序存储结构为例:
#include <stdio.h>
#include <stdlib.h>

#define ERROR 0
#define OK 1

typedef int Status;
typedef int ElemType;//顺序表测试用

const int MaxSize=100; //100只是示例性的数据,可以根据实际问题具体定义
const int Increasement=10;

typedef struct{
ElemType *elem;
int length;
int listsize;
}SeqList;

Status InitList(SeqList &S,int n=MaxSize)
{//初始化线性表
if(n<=0)
n=MaxSize;
S.elem =(ElemType *)malloc(n*sizeof(ElemType));
if(S.elem ==NULL)
exit(ERROR);
S.length =0;
S.listsize =n;
return OK;
}

int ListLength(SeqList &S)
{ //求线性表的长度
return S.length ;
}

void GetElem(SeqList &S,int i,ElemType &e)
{//按位查找,取线性表的第i个元素
if(i<1 || i>S.length )
exit(ERROR);
e=S.elem [i-1];
}

Status ListInsert(SeqList &S,int i, ElemType e)
{ //在线性表中第i个位置插入值为e的元素
if(i<1 || i>S.length+1 )
return ERROR;
if(S.length >=S.listsize )
{
ElemType *newbase=(ElemType *)realloc(S.elem,Increasement*sizeof(ElemType));
if(newbase==NULL)
exit(ERROR);
S.elem =newbase;
S.listsize =S.listsize+Increasement;
}
for(int j=S.length -1;j>=i-1;j--)
S.elem [j+1]=S.elem [j];
S.elem [i-1]=e;
S.length++;
return OK;
}

Status Output(SeqList S)
{//遍历线性表,按序号依次输出各元素
if(S.length ==0)
return ERROR;
for(int i=0;i<S.length ;i++)
printf("%d\t",S.elem[i]);
printf("\n");
return OK;
}

void BinInsertSort(int r[ ], int n)
{//折半插入排序
int low,high,mid;
ElemType e;
for (int i=1; i<n; i++)
{
e=r[i];
low=0; high=i;
while (low<=high)
{
mid=(low+high)/2;
if (e<r[mid])
high=mid-1;
else low=mid+1;
}
for (int j=i-1; j>=high+1; j--)
r[j+1]=r[j];
r[high+1]=e;
}
}

void MergeList(SeqList La, SeqList Lb, SeqList &Lc) {
// 已知顺序表La和Lb中的元素按值非递减排列。
// 归并La和Lb得到新的顺序表Lc,Lc的元素也按值非递减排列。
int La_len, Lb_len;
ElemType ai, bj;
int i=1, j=1, k=0;
InitList(Lc);
La_len = ListLength(La);
Lb_len = ListLength(Lb);
while ((i <= La_len) && (j <= Lb_len)) { // La和Lb均非空
GetElem(La, i, ai);
GetElem(Lb, j, bj);
if (ai <= bj) {
ListInsert(Lc, ++k, ai);
++i;
} else {
ListInsert(Lc, ++k, bj);
++j;
}
}
while (i <= La_len) {
GetElem(La, i++, ai); ListInsert(Lc, ++k, ai);
}
while (j <= Lb_len) {
GetElem(Lb, j++, bj); ListInsert(Lc, ++k, bj);
}
} // MergeList

void main()
{
SeqList La,Lb,Lc;
InitList(La,3);
InitList(Lb,5);
ElemType data;

printf("输入顺序表La的元素值:\n");
for(int i=1;i<=3;i++)
{
scanf("%d",&data);
ListInsert(La, i, data);
}

fflush(stdin);
printf("输入顺序表Lb的元素值:\n");
for(i=1;i<=5;i++)
{
scanf("%d",&data);
ListInsert(Lb, i, data);
}

//La和Lb非递减排序
BinInsertSort(La.elem , 3);
BinInsertSort(Lb.elem , 5);

MergeList(La,Lb,Lc);
Output(Lc);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
推荐于2017-09-21 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:883万
展开全部
1、如果算法描述已经很彻底了,只要补充变量定义,等语言细节就可以,把算法描述转化为各种编程语言了。如果只是泛泛而论,自己去把算法转换成伪代码描述,或者流程图之类的,然后再用C语言实现。
2、算法只是一种处理数据的一种思想(常用伪代码表示),理解这种思想之后,再用计算机语言表达出来,如果C语法不过关,是很难完成程序的编写,所以C语言本身也要认真学习才行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱流雨飞轩
2011-10-19 · TA获得超过1199个赞
知道小有建树答主
回答量:665
采纳率:0%
帮助的人:471万
展开全部
哥们你有提问的功夫,你也百度出来啦
追问
我主要是找一个模板,我对数据结构的算法转化不是太了解,求证一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式