1、下面 C 程序中的功能是,首先建立一个线性链表 head=3,5,7,9 ,其元素值依次为从键盘输入正整数(以输入一个非正整数为结束) ;在线性表中值为 x 的元素前插入一个值为 y 的数据元素。若值为 x 的结点不存在,则将 y 插在表尾。#include “stdio.h“struct slnode int data;struct slnode *next; /*定义结点类型*/main()int x,y,d;struct slnode *head,*p,*q,*s;head=(struct slnode*)malloc(sizeof(struct slnode);head-next=NU
2、LL; /*置链表空*/q=head;scanf(“%d“, /*输入链表数据元素*/while(d0) p=(struct slnode*)malloc(sizeof(struct slnode); /*申请一个新结点*/p-data=d;p-next=NULL;if(head-next=NULL)head-next=p; /*若链表为空,则将头指针指向当前结点 p*/else q-next=p; /*链表不为空时,则将新结点链接在最后*/q=p; /*将指针 q 指向链表的最后一个结点*/scanf(“%d“,printf(“input the place and insert datan“);scanf(“%d %d“,s=(struct slnode*)malloc(sizeof(struct slnode);s-data=y;q=head;p=q-next;while(p!=NULL)p=p-next; /*查找元素为 x 的指针*/s-next=p;q-next=s; /*插入元素 y*/p=head-next;while(p!=NULL)printf(“%5d“,p-data);p=p-next;getch();