以下结点node定义了一个学生的信息。函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针
生活随笔
收集整理的這篇文章主要介紹了
以下结点node定义了一个学生的信息。函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 以下結點node定義了一個學生的信息。函數find查找并返回學號小于num,且下一節點學號不小于num的結點指針。函數insert按學號遞增順序插入新學生。測試主函數從鍵盤輸入5個學號,調用insert函數插入鏈表,并輸出鏈表內容。
- 請補全程序,完成相應的功能。
初步實現功能
#include <stdio.h> #include <stdlib.h> struct node {int num; /*學生的學號*/struct node *next; /*指向下一結點*/}; struct node *find(struct node *head,int num) {/*①如果head為空鏈表,則返回空指針。②如果第一個結點的學號不小于num,也返回空指針。③如果最后一個結點的學號仍小于num,則返回最后一個結點指針。④如果當前結點的學號小于num且下一結點學號不小于num,則返回當前結點的指針*/struct node *p, *q;if(head==NULL || head->num>=num)return NULL;/*head為空鏈表時或第一個結點的學號不小于num時返回空指針*/for ( p=head; p!=NULL; p=p->next ){q = p->next;if (q==NULL || q->num>=num)return p;} } struct node *insert(struct node *head,int num) {/*按學號順序插入新結點,新結點的學號為num*/struct node *p, *q;p = (struct node *)malloc(sizeof(struct node));/*分配內存空間*/p->num = num;q = find(head,num);/*找到插入位置在p的后面*/if (q==NULL){ /*插入到鏈表頭*/p->next = head;return p;}p->next=q->next;/*插入到q的后面*/q->next = p;return head; } int main() {struct node *head=NULL, *p;int i, num;for ( i=0; i<5; i++ ){scanf( "%d", &num );head=insert(head,num);}for ( p=head; p!=NULL; p=p->next )printf( "%d ", p->num );printf("\n");return 0; }?
總結
以上是生活随笔為你收集整理的以下结点node定义了一个学生的信息。函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从键盘输入一个正整数(不多于5位),计算
- 下一篇: MQTT.fx连接aliyun阿里云的方