怎么把数据结构 用C语言运行起来, 我是初学 尤其是严蔚敏的那一本教材 有很多的错误

以一个例子来说明吧:#include"stdio.h"#include"conio.h"intMergeList(inta[4],intb[3],intc[8]){int... 以一个例子来说明吧 :
#include "stdio.h"
#include "conio.h"

int MergeList(int a[4],int b[3],int c[8]){
int j=0,k=0,i=0;
int La_len,Lb_len;
InitList(c[8]);
La_len=ListLength(a[4]);
Lb_len=ListLength(b[3]);
while ((i<=La_len)&&(j<=Lb_len));{

GetElem(La_len,i,a[i]);

GetElem(Lb_len,j,a[j]);

if(a[i]<=b[j]){
Insert(c[8],++k,a[i]);++i;
}
else {Insert(c[8],++k,b[j]);++j;}

}

while (i<=La_len){GetElem(La_len,i,a[i]);Insert(c[8],++k,a[i]);
}
while (j<=Lb_len){GetElem(Lb_len,j,a[j]);Insert(c[8],++k,b[j]);
}
return c[8];
}
InitList(int T){
T=(int *)malloc(8*sizeof(int));
if(!T) return 0;
return 1;

}

GetElem(int T,int i,int e){
if(i<1||i>3) return 0;
e= T[i-1];
return 1;
}

main()
{
int a[4]={1,3,5,7};
int b[3]={2,4,6};
int c[8];
c[8]=MergeList(a[4],b[3],c[8]);

getch();
}

主函数中的我不会写 随便写的 求大师指点 细致一点~
展开
 我来答
xiaohuoban160
2011-03-31 · TA获得超过169个赞
知道答主
回答量:73
采纳率:0%
帮助的人:105万
展开全部
我是学c++的,对于C语言的输入输出很害怕。。。
我自己用c++写的,你可以参考下。
#include <iostream>
using namespace std;

struct Node
{
int Value;
Node *next;
};

//创建链表
Node *CrtNode(int n)
{
Node *head; //声明头指针head
Node *p,*s;
int x;
head=new Node; //创建头结点由head指向(空的头结点)
s=head;
cout<<"请输入数字:"<<endl;
for(int i=0;i<n;i++)
{
p=new Node; //创建一个结点
cin>>x;
p->Value=x; //把输入的x的值赋给创建的结点
s->next=p; //把创建的结点由s的next指向
s=p; //指针s的指向向后移一个结点
}
p->next=NULL; //最后一个结点的next指向空
return head; //返回头指针
}

//显示
void ShowNode(Node *head)
{
Node *p;
//显示除头结点以后所有结点(因为创建时头结点为空)
p=head->next;
while(p!=NULL)
{
cout<<p->Value<<" ";
p=p->next;
}
cout<<endl;
}

//排序(从大到小)
void paixu(Node *head,int n)
{
Node *p,*s;
//对所有值排序(冒泡排序)
for(int i=0;i<n-1;i++)
{
p=head->next;
for(int j=0;j<n-i-1;j++)
{
s=p->next;
if(p->Value<s->Value)
{
int N=p->Value;
p->Value=s->Value;
s->Value=N;
}
p=p->next;
}
}
}

//插入
void InsNode(Node *head)
{
int newValue;
Node *p,*s,*d;

s = head; //s为头结点
d = s->next; //d为s的后一个结点
cout<<"请输入需要插入的数:";
cin>>newValue;
p=new Node; //创建需要插入的结点
p->Value = newValue;
p->next = NULL;
if(d == NULL) //如果链表为空,直接插在头结点后面
s->next = p;
else
{ //不为空链表则循环
while(1)
{
if(p->Value >= d->Value) //如果待插入结点的值不小于d结点则插到d结点前,跳出循环
{
s->next = p;
p->next = d;
break;
}
else if(d -> next == NULL) //如果待插入的结点的值小于最后一个结点,则插在最后结点之后,跳出循环
{
d->next = p;
break;
}
s = d; //
d = d->next; //指针s,d的指向都向后跳一个结点
}
}
}

//删除
void DelNode(Node *head)
{
Node *p,*s;
int delValue;
p = head;
s = p->next;
cout<<"请输入需要删除的数:";
cin>>delValue;
if(s == NULL) //判断空链表
cout<<"这是一个空链表!"<<endl;
else
{
while(s != NULL&&s->Value != delValue) //判断s结点的值是否等于输入的值,不等于则指针p,s指向向后移一个结点
{
p = s;
s = s->next;
}

if(s != NULL) //已经找到,则删除S结点
{
p->next = s->next;
delete s;
}
else //没有找到
cout<<"没有找到要删除的数值!"<<endl;

}
}

//计算长度
int LenNode(Node *head)
{
Node *p;
//头结点没有计入
p=head->next;
int count=0;
while(p)
{
p=p->next;
count++;
}
return count;
}

void contraryNode(Node *head)
{
Node *p,*s,*t = NULL; //声明一个辅助结点
p = head->next; //p指向头结点后的第一个结点
while(p != NULL) //p结点不为空
{
s = p;
p = p->next;
s->next = t;
t = s;
}
head->next = t;
}

int main()
{
Node *head;
int n;
char ch;
cout<<"请输入需要创建的链表的结点数:";
cin>>n;
head=CrtNode(n);
paixu(head,n);
cout<<"此链表共有 "<<LenNode(head)<<" 个结点."<<endl;
cout<<"排序后:";
ShowNode(head);
contraryNode(head);
cout<<"逆置后:";
ShowNode(head);
paixu(head,n);
cout<<"排序后:";
ShowNode(head);
do
{
InsNode(head);
ShowNode(head);
DelNode(head);
ShowNode(head);
cout<<"此链表共有 "<<LenNode(head)<<" 个结点."<<endl;
cout<<"是否继续操作(Y/N)?";
cin>>ch;
}
while(ch=='y'||ch=='Y');
return 0;
}
at2021
2011-03-31 · TA获得超过197个赞
知道答主
回答量:81
采纳率:0%
帮助的人:77.7万
展开全部
不是很明白你的意思, 数据结构其实就是对数据按一定的规则进行组合或限制(比如栈就限制了先进后出,本质上还是一个数组,当然用链表也可以). 所以所谓的用C运行其实就是调用函数.数据结构是用来实现一些算法或者特定功能的, 按照书上或者你自己的想法去实现一些功能,在实现的过程中自然会用到数据结构了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yywyy151113219
2019-05-07
知道答主
回答量:3
采纳率:0%
帮助的人:2540
展开全部
这么和你说吧,严蔚敏的数据结构里面的c语言代码真的很糟糕(个人觉得),里面的代码应该是伪代码,而且有些根本不按照c语言的语法写,你想要运行时不可能的,想要能运行的代码,你可以去中国大学mooc上选浙大数据结构,里面代码是可以运行的,当然也可以买清华大学的《数据结构算法分析》高一凡的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-30
展开全部
太乱了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ming52you
2011-03-30 · 超过14用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:34万
展开全部
没看懂你这个问题是什么 首先你这个里面哪里有数据结构?这不是一堆的函数么? 还有两个没有定义的 insert listLength 还有什么是把数据结构运行起来 看不懂。。。。
更多追问追答
追问
这是我把书上的改过了以后的, 是想让两个数组的数据合并在一个数组里面,主函数里德我是再随便写的,所以没有定义就提问了
追答
你这个。。。   实在是太糟了  不如重新写一个  
是要把两个数组合并成一个 然后给C[]么 ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式