如何一步步创建链表
①.結構體
結構體中分為data(數據域)和next(指針)
②.創建一個全空鏈表
struct node *head,*tail,*p; //頭尾和p指針 head = tail =NULL; //必須先設空,后面才能插入③.添加
p = (struct node *) malloc(sizeof(node));//賦空間,要注意的是,每次把p插入后必須再次賦予空間 cin>>number>>str;//cin就是C語言中的scanf,即輸入。這里的number和str并不是①中結構體里的,你還得重新設置過,這里命名相同是沒什么關系的。 p->number=number; strcpy(p->str,str)//strcpy函數是字符串復制,意思就是p->str=str,但是沒這寫法,得用到strcpy函數。 p->next = NULL;//把p->next賦為NULL,然后head和tail兩個指針就可以指到p上而不再是NULL,也就是不再為空 if(head==NULL) head=p;//就一步就是上面說的頭指針指向p而不是NULL,這一步只執行一次else tail->next=p;//頭指針指向了鏈表頭部后不再移動,尾指針則不斷移動,從而使得整個鏈表不斷往后延伸,如果沒有這一步鏈表不會往下延伸,只有最開始的一個 tail = p;//tail在這里就相當于火炬手,需要把火炬(即p指針)傳下去,p是不斷在更新的。 //它一更新即p = (struct node *) malloc(sizeof(node)),就轉世重生沒了記憶,不知道自己是誰,自己在哪,這時只有tail可以挽救它,把它傳遞下去。如果沒看懂在紙上稍微畫一下,按照上面的流程推一推。
strcpy詳見strcpy函數
③的操作可以不斷重復用來延長鏈表。
實例:查詢成績(鏈表)
總結
- 上一篇: 人事管理系统 数据流图_中国移动集中化人
- 下一篇: 为什么一定情况下scanf比cin快