以下结点node定义了一个学生的信息。函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针
生活随笔
收集整理的這篇文章主要介紹了
以下结点node定义了一个学生的信息。函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
- 以下結(jié)點(diǎn)node定義了一個(gè)學(xué)生的信息。函數(shù)find查找并返回學(xué)號(hào)小于num,且下一節(jié)點(diǎn)學(xué)號(hào)不小于num的結(jié)點(diǎn)指針。函數(shù)insert按學(xué)號(hào)遞增順序插入新學(xué)生。測試主函數(shù)從鍵盤輸入5個(gè)學(xué)號(hào),調(diào)用insert函數(shù)插入鏈表,并輸出鏈表內(nèi)容。
- 請(qǐng)補(bǔ)全程序,完成相應(yīng)的功能。
初步實(shí)現(xiàn)功能
#include <stdio.h> #include <stdlib.h> struct node {int num; /*學(xué)生的學(xué)號(hào)*/struct node *next; /*指向下一結(jié)點(diǎn)*/}; struct node *find(struct node *head,int num) {/*①如果head為空鏈表,則返回空指針。②如果第一個(gè)結(jié)點(diǎn)的學(xué)號(hào)不小于num,也返回空指針。③如果最后一個(gè)結(jié)點(diǎn)的學(xué)號(hào)仍小于num,則返回最后一個(gè)結(jié)點(diǎn)指針。④如果當(dāng)前結(jié)點(diǎn)的學(xué)號(hào)小于num且下一結(jié)點(diǎn)學(xué)號(hào)不小于num,則返回當(dāng)前結(jié)點(diǎn)的指針*/struct node *p, *q;if(head==NULL || head->num>=num)return NULL;/*head為空鏈表時(shí)或第一個(gè)結(jié)點(diǎn)的學(xué)號(hào)不小于num時(shí)返回空指針*/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) {/*按學(xué)號(hào)順序插入新結(jié)點(diǎn),新結(jié)點(diǎn)的學(xué)號(hào)為num*/struct node *p, *q;p = (struct node *)malloc(sizeof(struct node));/*分配內(nèi)存空間*/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; }?
總結(jié)
以上是生活随笔為你收集整理的以下结点node定义了一个学生的信息。函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从键盘输入一个正整数(不多于5位),计算
- 下一篇: 验证哥德巴赫猜想:任何一个大于6的偶数均