数据结构(急啊!)

来源:百度知道 编辑:UC知道 时间:2024/06/14 00:37:48
五、算法题:

66、编写一个函数,统计单链表的结点数并将其中所有元素输出。
说明:结点类型定义为
struct node
{ int data;
struct node *link;
};
typedef struct node NODE;
int tprint(NODE *head)
{
/*函数体请写在阴影处*/

}

67、在线性表中第一个值为x的元素前插入一个新的元素y,如果x不存在,则将元素y插入在线性表的末尾。
void insert(int x, int y, int v[ ], int *p) /* p为指向存放表长的指针变量*/
{
/*函数体请写在阴影处*/

}

68、当用一个循环数组que[0,m-1]表示队列时,该队列只有一个头指针front,不设队尾指针rear,而改置计数器count用以记录队列中结点的个数。
(1)编写实现队列出队的函数。
(2)出队列是由count控制吗?

69、当用一个循环数组que[0,m-1]表示队列时,该队列只有一个头指针front,不设队尾指针rear,而改置计数器count用以记录队列中结点的个数。
(1)编写实现队列入队的函数。
(2)队列中能容纳元素的最多个数还是m-1吗?

66.
int tprint(NODE *head)
{ NODE *p;
int i=0;
p=head;
while(p->link)
{ p=p->link;
i++;
printf(p->data);
}
return i;
}
67.
void insert(int x, int y, int v[ ], int *p)
{
int i=0;
for(i=0;i<*p;i++)
{ if(v[i]==x)
break;
}
for(j=*p;j--;j<i)
v[j]=v[j-1];
v[i]=y;
*p=*p++;

}
68.(1)假设队列的元素的类型为Q,front指向队头元素的下一个
Q Delete(Q que[],int *front,int *count)
{
Q p=que[--front%m];
*count--;
retrun Q;
}
(2).是
队尾指针是(--front-count)%m;
69.
(1)
void Insert(Q que[],int front,int *count,Q data)
{
que[(--front-*count)%m]=data;
*count++;
}
(2)
是,同时能容纳的数据仍为m-1个