发布网友 发布时间:2022-04-24 08:31
共2个回答
热心网友 时间:2022-06-18 01:25
1.对的追答……第1题是特意去书上找的,就是《数据结构教程(第二版)》(唐发根著)第2页第1行,一个字都木有打错……看来是书的问题了…… 第7题错的原因我不是说了吗…… 第12题我觉得我没错啊,不然给个反例吧…… 第5题队列是真的有链式存储结构的,如下
第五题队列的链式结构——这下你可以相信了吧……
#include
#include
#define Max 100
typedef struct node
{
int data;
struct node *link;
}QNode,*QLink;
int EmptyQLink();
QLink GetLinkQ();
QLink AddLinkQ();
QLink DelLinkQ();
void DesLinkQ();
int main()
{
QLink front,rear,p;
int a[Max],i=0,n;
front=rear=NULL;
while(scanf("%d",&a[i])==1)
{
i++;
if(getchar()=='\n')
break;
}
n=i;
for(i=0;idata=a[i];
p->link=NULL;
if(front==NULL)
front=p;
else
rear->link=p;
rear=p;
}
front=DelLinkQ(front);
while(front!=NULL)
{
printf("%d ",front->data);
front=front->link;
}
printf("\n");
}
//测试链接队列是否为空
int EmptyQLink(QLink front)
{
return front==NULL;
}
//取当前队头元素
QLink GetLinkQ(QLink front,int item)
{
if(EmptyQLink(front))
return NULL;
return front;
}
//链接队列的插入
QLink AddLinkQ(QLink front,QLink rear,int item)
{
QLink p;
p=(QLink)malloc(sizeof(QNode));
p->data=item;
p->link=NULL;
if(front==NULL)
front=p;
else
rear->link=p;
rear=p;
return rear;
}
//链接队列的删除
QLink DelLinkQ(QLink front)
{
QLink p;
if(EmptyQLink(front))
return NULL;
p=front;
front=front->link;
free(p);
return front;
}
//链接队列的销毁
void DesLinkQ(QLink front,QLink rear)
{
while(front)
{
rear=front->link;
free(front);
front=rear;
}
}
热心网友 时间:2022-06-18 01:25
有数据结构方面的资料视.频