补充以下函数,使得函数实现单向链表动态建立的功能。结点结构体定义:struct node//结点结构体{int num;struct node *next;};struct node * createL(struct node * head)//单向链表建立{struct node *pEnd,*pNew;pNew= (struct node *)malloc(sizeof());//动态生成一个结点head=pNew;//头指针指向第一个节点pEnd=pNew; //当前链表尾结点指针也指向第一个结点scanf("%d ",&pNew->num);//输入结点数据while( pNew->num!=0)//结点数据不为0,继续增加新结点{pNew->next=NULL;//设置新节点的指针为空pEnd->next=;//当前链表的尾结点指针指向新结点;pEnd=pNew;//pEnd指向当前新节点pNew= (struct node *)malloc(sizeof(struct node)); //继续申请新结点内存空间scanf("%d",&pNew->num); //输入结点数据}free();//释放没有用到的结点空间return head;}
查看答案
补充以下函数,使得函数实现对单向链表的输出功能。struct node //链表结点结构体{int num;struct node *next;};void printL(struct node *head)//单向链表的输出{struct node *pTemp;pTemp=;//让pTemp指针指向链表的首结点while(pTemp!=NULL)//pTemp没有指向空,即链表没有遍历完{printf("%d->",pTemp->);//输出链表中当前结点的数据pTemp=;//pTemp指向下一个结点}printf("\n");}
补充以下函数,使得函数是实现单向链表的插入操作功能。struct node//链表结构体{int num;struct node *next;};struct node * insertL(struct node * head)//单项链表的插入{struct node *p,*q,*pNew;pNew= (struct node *)malloc(sizeof(struct node)); //为要插入的结点申请空间printf("\n输入要插入的新结点数据num:\n");scanf("%d",&pNew->num); //输入结点数据pNew->next=;if(pNew->numnum) //新结点数据比头结点数据小,则插入到头结点前{pNew->next=;=pNew;}else//新结点插入到链表中间或尾部{p=head;while(p!=NULL && p->numnum)//遍历链表,找到新结点要插入的位置{q=p;//用q记录前驱结点=p->next; //用p记录遍历到的当前结点}if(q!=NULL){=p; //把新结点连接到p结点之前q->next=;//把新结点连接到q结点之后}else{p->next=; //把新结点连接到尾结点后}}return head;}
补充以下函数,使得函数是实现单向链表的删除结点操作功能。struct node//链表结构体{int num;struct node *next;};struct node * deleteL(struct node * head) //单向链表的删除{int num;printf("\n输入要删除的结点数据num:\n");scanf("%d",&num);struct node *p,*q;if(==num)//删除头结点{p=head;//p指向链表头结点head=;//head指向头结点的下一个结点,使其成为新的头结点}else//删除中间结点或尾结点{p=head;while(p!=NULL&&p->num!=num) //遍历到要删除的结点位置p{q=p;p=p->next;}if(p!=NULL)//要删除的结点在中间{q->next=;}else//要删除的结点在尾部{q->next=NULL;}}free(); //释放删掉的结点内存空间return head;}
旅游业促进地区经济发展包括内容:
A. 加快地区市政、道路、公用事业,通信等基础设施建设。
B. 促进地区的商品经济发展。
C. 增加税收。
D. 为当地居民创造就业机会。