算法与数据结构c语言第三版答案
发布时间: 2025-04-26 11:49:52
① 数据结构(c语言版)题目求答案
3.28
void InitCiQueue(CiQueue&Q)//初始化循环链表表示的队列Q
{
Q=(CiLNode*)malloc(sizeof(CiLNode));
Q->next=Q;
}//InitCiQueue
voidEnCiQueue(CiQueue&Q,int x)//把元素x插入循环列表表示的队列Q,Q指向队尾元素,Q->next指向头结点,Q->next->next指向队尾元素
{
p=(CiLNode*)malloc(sizeof(CiLNode));
p->data=x;
p->next=Q->next;//直接把p加在Q的后面
Q->next=p;
Q=p;//修改尾指针
}
Status DeCiQueue(CiQueue&Q,int x)//从循环链表表示的队列Q头部删除元素x
{
if(Q==Q->next)return INFEASIBLE;//队列已空
p=Q->next->next;
x=p->data;
Q->next->next=p->next;
free(p);
rturn OK;
}//DeCiqueue
3.31
int Palindrome_Test()
{
InitStack(S);InitQueue(Q);
while((c=getchar())!='@')
{
Push(S,c);EnQueue(Q,c);
}
while(!StackEmpty(S))
{
pop(S,a);DeQueue(Q,b);
if(a!=b)return ERROR;
}
return OK;
}
② 算法与数据结构c语言描述第2版和第三版区别大么
20voidMP_Ellipse(intxc,intyc,inta,intb)
21{
22doublesqa=a*a;
23doublesqb=b*b;
24
25doubled=sqb+sqa*(-b+0.25);
26intx=0;
27inty=b;
28EllipsePlot(xc,yc,x,y);
29while(sqb*(x+1)<sqa*(y-0.5))
30{
31if(d<0)
32{
33d+=sqb*(2*x+3);
34}
35else
36{
37d+=(sqb*(2*x+3)+sqa*(-2*y+2));
38y--;
39}
40x++;
41EllipsePlot(xc,yc,x,y);
42}
43d=(b*(x+0.5))*2+(a*(y-1))*2-(a*b)*2;
44while(y>0)
45{
46if(d<0)
47{
48d+=sqb*(2*x+2)+sqa*(-2*y+3);
49x++;
50}
51else
52{
53d+=sqa*(-2*y+3);
54}
55y--;
56EllipsePlot(xc,yc,x,y);
57}
58}
热点内容