系统已经实现用malloc生成3个结点并串接成功,现在需要实现换一个函数destroy要删除第二个节点后,第一个结点和第三个结点串接,返回值为第一个结点地址,注意删除的结点要free释放空间。
函数接口定义:
ptr destroy(ptr p1);
返回值为第一个结点的地址。
结构定义:
typedef struct node//结构体定义
{
int data;//存储数据
struct node *next;//指向下一个结点的指针
}
snode,*ptr;//定义别名
裁判测试程序样例:
#include <stdio.h>
#include<stdlib.h>
typedef struct node//结构体定义
{
int data;
struct node *next;
}snode,*ptr;
ptr destroy (ptr p);
void traversal(ptr p);
int main()
{
int x1,x2,x3;
ptr p1,p;
scanf("%d%d%d", &x1,&x2,&x3);
p1=createthree(x1,x2,x3);
p=destroy (p1);
traversal(p1);
return 0; }
void traversal(ptr p)
{
while(p!=NULL) {
printf("%d ",p->data);
p=p->next; } }
/* 请在这里填写答案 */
输入样例:
5 1 6
输出样例:
5 6
代码实现:
ptr destroy(ptr p1)
{
ptr wyf;
wyf=(ptr)malloc(sizeof(snode));
wyf=p1->next;
p1->next=p1->next->next;
free(wyf);
return p1;}