① 数据结构中的算法转换成c语言应该注意的问题
如果是c语言描述的数据结构算法,由于用的是类c语言,也就是一种伪代码,所以它主要是描述算法的逻辑,转换成c语言的时候,要根据c语言的语法规则进行修改。下面是我的网络贴吧,里面有些c语言实现的数据结构算法。
http://tieba..com/f?ct=&tn=&rn=&pn=&lm=&kw=%c4%ab%bd%b3&rs2=0&myselectvalue=1&word=%c4%ab%bd%b3&tb=on
② 数据结构类C语言代码转换为c++或c语言代码
用C++的话可以直接用std::list,题中的 GetElemP_DuL 相当于扰散败 list<EleType>缓颤掘氏::iterator j = mylist.begin(); for (int ii=0; j != mylist.end() && ii < i; ++j, ++ii); return j;
而 ListInsert_DuL 相当于 list::insert 函数。
③ 数据结构中的算法怎么转化成c语言程序啊
1、算法有啦一个大致的雏形后,想清楚算法的流程,然后先将主程序打好,细节先用过程与函数代替。
2、然后再完善细节部分。
3、最后构造一些数据测试。
建议构造3种数据。
第一种随机生成的大数据,以检验程序在平均情况下的时间效率。
第二种是人工构造的奇葩/猥琐数据,且最好能确定答案,以检验其正确性,比如贪心的一些可能的反例。
最后一种是人工构造的特殊数据,比如,在有关树的题目中,将输入中的树退化成一条链。
④ 求助:数据结构算法改为C语言程序(急)
#include "stdio.h"
#include "stdlib.h"
#define OK 1
#define ERROR 0
#define MAX 11
#define OVERFLOW 0
typedef int ElemType;
typedef struct
{
ElemType *base;//动态分配存储空间
int length;//队列长度
int rear;//队尾指针,指向队尾元素
}SqQueue;
int EnQueue(SqQueue &Q,ElemType x)
{//带length域的循环队列入队算法
if(Q.length==MAX)return ERROR;//队列满
Q.rear=(Q.rear+1)%MAX;
Q.base[Q.rear]=x;
Q.length++;
return OK;
}
int DeQueue(SqQueue &Q,ElemType &x)
{//带length域的循环队列出队算法
int head;
if(Q.length==0)return ERROR;//队列空
head=(Q.rear-Q.length+1)%MAX;
x=Q.base[head];
Q.length--;
return OK;
}
int InitQueue(SqQueue &Q)
{//构造一个空循环队列Q
Q.base=new ElemType[MAX];
if(!Q.base) exit(OVERFLOW);
Q.rear=0;
Q.length=0;
return OK;
}
int main()
{
SqQueue Q;
int x,y;
if(InitQueue(Q))
{
printf("请输入10个入队元素:");
for(int i=1;i<11;i++)
{
scanf("%d",&x);
EnQueue(Q,x);
}
DeQueue(Q,y);
printf("\n队头元素是:%d\n",y);
}
return 0;
}
//你的代码里已经写了队列满的条件了,在入队算法的第一行
⑤ 数据结构 栈 进制转换,用C语言描述
#include<stdio.h>
#include<stdlib.h>
#defineOK1
#defineERROR-1
#defineOVERFLOW-2
#defineSTACK_INIT_SIZE50
#defineSTACKINCREMENT10
typedefintSElemType;
typedefintStatus;
typedefstruct{
SElemType*base;
SElemType*top;
intstacksize;
}SqStack;
StatusInitStack(SqStack&S)
{//构建一个空栈
S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!S.base)exit(OVERFLOW);//存储分配失败
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
returnOK;
}
StatusDestroyStack(SqStack&S)
{if(!S.base)returnERROR;//若栈未建立(尚未分配栈空间)
free(S.base);//回收栈空间
S.base=S.top=NULL;
S.stacksize=0;
returnOK;
}//DetroyStack
StatusPush(SqStack&S,chare)
{//插入元素e为新的栈顶元素
if(S.top-S.base>=S.stacksize){//栈满,追加存储空间
S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));
if(!S.base)returnOVERFLOW;//存储分配失败
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
returnOK;
}//Push
StatusPop(SqStack&S,char&e)
{//若栈不空,则删除S的栈顶元素
//用e返回其值,并返回OK;否则返回ERROR
if(S.top==S.base)returnERROR;
e=*(--S.top);
returnOK;
}//Pop
Statustwo()
{SElemTypen;chare;
SqStackS;
InitStack(S);//建空栈
printf("请输入一个十进制正整数: ");//该函数未检查是否为正数和整数
scanf("%d",&n);
printf("的2进制是:");
while(n)
{
Push(S,n%2);//N/2余数进栈
n=n/2;//整除运算
}
while(S.top!=S.base){
Pop(S,e);
printf("%d",e);
}
printf(" ");
DestroyStack(S);
}
Statuseight()
{SElemTypen;chare;
SqStackS;
InitStack(S);//建空栈
printf("请输入一个十进制正整数: ");
scanf("%d",&n);
printf("的8进制是:");
while(n)
{
Push(S,n%8);//N/8余数进栈
n=n/8;//整除运算
}
while(S.top!=S.base){
Pop(S,e);
printf("%d",e);
}
printf(" ");
DestroyStack(S);
}
Statussixteen()
{SElemTypen;chare;
SqStackS;
InitStack(S);//建空栈
printf("请输入一个十进制正整数: ");
scanf("%d",&n);
printf("的16进制是:");
while(n)
{e=n%16;
If(e==0)e='0';
if(e==1)e='1';
if(e==2)e='2';
if(e==3)e='3';
if(e==4)e='4';
if(e==5)e='5';
if(e==6)e='6';
if(e==7)e='7';
if(e==8)e='8';
if(e==9)e='9';
if(e==10)e='A';
if(e==11)e='B';
if(e==12)e='C';
if(e==13)e='D';
if(e==14)e='E';
if(e==15)e='F';
Push(S,e);//N/16余数进栈
n=n/16;//整除运算
}
while(S.top!=S.base){
Pop(S,e);
printf("%s",&e);
}
printf(" ");
DestroyStack(S);
}
intmain()
{intflag;
intselect;
printf("主菜单 ");
printf("1.2进制 ");
printf("2.8进制 ");
printf("3.16进制 ");
printf("4.退出 ");
while(flag)
{printf("请选择:");
scanf("%d",&select);
switch(select)
{
case1:
two();
break;
case2:
eight();
break;
case3:
sixteen();
break;
case4:
flag=0;
break;
}
}
}
⑥ 怎样将数据结构中的算法代码转换成纯C语言程序
1、如果算法描述已经很彻底了,只要补充变量定义,等语言细节就可以,把算法描述转化为各种编程语言了。如果只是泛泛而论,自己去把算法转换成伪代码描述,或者流程图之类的,然后再用c语言实现。 2、算法只是一种处理数据的一种思想(常用伪代码表示),理解这种思想之后,再用计算机语言表达出来,如果c语法不过关,是很难完成程序的编写,所以c语言本身也要认真学习才行。
⑦ 数据结构中的算法怎样转化为可执行的c语言程序啊
1、Fibonacci数列算法:Fibonacci数列有如下特点:第1,2两个数的值为1,从第3个数开始,该数是其前面两个数之和。
⑧ 数据结构的算法如何变成C语言程序
具体怎么实现的得靠自己了,因为数据结构中的算法都是类c语言,并不能上机实现,所以需要自己写成c的形式,并上机调试!!!
其实真正锻炼自己能力的就是把算法变成c语言程序,没有什么好的方法,只能多练多调试!!!同时也可以参考下别人的代码,读明白了,在多练几次就会了!!!
希望可以帮你!!
c编程高手团队正在招新,有意者速速行动一起学习,一起努力!!