数据结构中的算法如何用C语言描述?请各位大神指点
答案:4 悬赏:0 手机版
解决时间 2021-04-01 02:35
- 提问者网友:刺鸟
- 2021-03-31 03:07
数据结构中的算法如何用C语言描述?请各位大神指点
最佳答案
- 五星知识达人网友:不甚了了
- 2021-03-31 03:31
数据结构中的算法,大部分都是用伪代码实现的,比如你这里的代码,它既包含了c语言的一些代码,同时也有c++的部分,这里只是想提供这种思路,该怎么做,但是当你把它想用完整的程序运行起来时,还是需要做一定工作的。
以你的代码为例。
因为在书的前面已经定义了几种操作,ListLength(L)表示返回表L中的元素个数,GetElem(L,i,&e)表示用e返回L中第i个数据元素的个数,LocateElem(L, e , equal ) ) ListInsert ( L , i , e ) 等等,所以在这里就直接用了。
当用程序实现时,你要先将这几种功能实现,返回个数,得到第i个数据元素,等等,数据结构的话是教你一种程序设计的思想,具体细节自己实现。
以你的代码为例。
因为在书的前面已经定义了几种操作,ListLength(L)表示返回表L中的元素个数,GetElem(L,i,&e)表示用e返回L中第i个数据元素的个数,LocateElem(L, e , equal ) ) ListInsert ( L , i , e ) 等等,所以在这里就直接用了。
当用程序实现时,你要先将这几种功能实现,返回个数,得到第i个数据元素,等等,数据结构的话是教你一种程序设计的思想,具体细节自己实现。
全部回答
- 1楼网友:煞尾
- 2021-03-31 06:20
数据结构中的算法是一种思想,没必要直接拿来扔代码里的
- 2楼网友:野慌
- 2021-03-31 05:09
主要采用伪码和C语言之间的类C语言作为描述工具,有时也用伪码描述一些抽象算法,用VB就可以编译了不用纠结,你可以买本书看看具体算法怎么写的
- 3楼网友:迷人又混蛋
- 2021-03-31 04:50
给你个求并集交集的程序你自己看看吧。很好理解的
自己写的
望采纳。
#include
#include
#define maxsize 50
typedef int ElemType;
typedef struct list
{
ElemType node[maxsize];
int length;
} list;
void creat(list *&L)
{
L=(list *)malloc(sizeof(list));
L->length=0;
}
bool search(list *L1,int e)
{
int i=0;
while( ilength)
{
if(L1->node[i]==e)
return true;
i++;
}
return false;
}
void jiaoji(list *L1,list *L2)
{
int i=0;
while( ilength )
{
if(search(L2,L1->node[i]))
{
printf("%d ",L1->node[i]);
}
i++;
}
printf("\n");
}
void chaji(list *L1,list *L2)
{
int i=0;
while(ilength)
{
if(!search(L2,L1->node[i]))
{
printf("%d ",L1->node[i]);
}
i++;
}
printf("\n");
}
void bingji(list *L1,list *L2)
{
int i=0;
while(ilength)
{
printf("%d ",L1->node[i]);
i++;
}
i=0;
while(ilength)
{
if(!search(L1,L2->node[i]))
{
printf("%d ",L2->node[i]);
}
i++;
}
printf("\n");
}
int main()
{
list *L1=NULL;
list *L2=NULL;
int i=0,n,m,re=0;
scanf("%d",&n);
scanf("%d",&m);
creat(L1);
for(i=0;i {
scanf("%d",&L1->node[i]);
L1->length++;
}
creat(L2);
for(i=0;i {
scanf("%d",&L2->node[i]);
L2->length++;
}
i=0;
while(ilength)
{
if(search(L2,L1->node[i]))
re++;
i++;
}
printf("%d ",L1->length+L2->length-re);
bingji(L1,L2);
printf("%d ",re);
jiaoji(L1,L2);
printf("%d ",L1->length-re);
chaji(L1,L2);
return 0;
}追问嗯(⊙_⊙),程序在哪里?追答没看到吗?发过去了啊。
你重新加载一下页面用电脑打开网页看看。
自己写的
望采纳。
#include
#include
#define maxsize 50
typedef int ElemType;
typedef struct list
{
ElemType node[maxsize];
int length;
} list;
void creat(list *&L)
{
L=(list *)malloc(sizeof(list));
L->length=0;
}
bool search(list *L1,int e)
{
int i=0;
while( i
{
if(L1->node[i]==e)
return true;
i++;
}
return false;
}
void jiaoji(list *L1,list *L2)
{
int i=0;
while( i
{
if(search(L2,L1->node[i]))
{
printf("%d ",L1->node[i]);
}
i++;
}
printf("\n");
}
void chaji(list *L1,list *L2)
{
int i=0;
while(i
{
if(!search(L2,L1->node[i]))
{
printf("%d ",L1->node[i]);
}
i++;
}
printf("\n");
}
void bingji(list *L1,list *L2)
{
int i=0;
while(i
{
printf("%d ",L1->node[i]);
i++;
}
i=0;
while(i
{
if(!search(L1,L2->node[i]))
{
printf("%d ",L2->node[i]);
}
i++;
}
printf("\n");
}
int main()
{
list *L1=NULL;
list *L2=NULL;
int i=0,n,m,re=0;
scanf("%d",&n);
scanf("%d",&m);
creat(L1);
for(i=0;i
scanf("%d",&L1->node[i]);
L1->length++;
}
creat(L2);
for(i=0;i
scanf("%d",&L2->node[i]);
L2->length++;
}
i=0;
while(i
{
if(search(L2,L1->node[i]))
re++;
i++;
}
printf("%d ",L1->length+L2->length-re);
bingji(L1,L2);
printf("%d ",re);
jiaoji(L1,L2);
printf("%d ",L1->length-re);
chaji(L1,L2);
return 0;
}追问嗯(⊙_⊙),程序在哪里?追答没看到吗?发过去了啊。
你重新加载一下页面用电脑打开网页看看。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯