-->
当前位置:首页 > 题库 > 正文内容

程序填空题:链表的插入和删除

Luz4年前 (2021-05-10)题库4645
本题完成加头监督元链表的表头插入和删除,并将结果输出。

```c++

#include
#include
typedef struct node
{
int data;
struct node *next;
}Snode,*ptr;

void insert(ptr h,int x)//将x插入在表头位置,即监督元之后
{
ptr p;
p=(ptr)malloc(sizeof(Snode));
p->data=x;
@@[p->next=h->next](1);
@@[h->next=p](1);
}

void output(ptr h)//输出链表中的元素,即输出除监督元以外的所有元素
{
ptr p;
@@[p=h->next](1);
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}

void del(ptr h)//删除表头元素,即监督元后第一个元素结点
{
ptr p;
@@[p=h->next](1);
@@[h->next=p->next](1);
free(p);
}

int main()
{
ptr head;
int x;
head=(ptr)malloc(sizeof(Snode));
head->next=NULL;
scanf("%d",&x);
while(x!=0)
{
insert(head,x);
scanf("%d",&x);
}
output(head);
del(head);
output(head);
return 0;
}
```






答案:
第1空:p->next=h->next

第2空:h->next=p

第3空:p=h->next

第4空:p=h->next

第5空:h->next=p->next

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。