關於動態連結串列的理解

nkd50000發表於2018-12-01

建立動態列表的具體過程,分為三個步驟:
(1)分配結點

struct Student *p1;  //建立struct Student型別的指標變數 p1 
p1 = (struct Student *)malloc(sizeof(struct Student)); //p1指向新分配的記憶體空間 

(2)輸入結點資料

printf("請輸入學號和成績:\n") ;
scanf("%d %f",p1->num,p1->score);
p1->next = NULL; 

(3)建立前後相連的關係
為簡單起見,新建立的結點要插入連結串列的結尾,且新建指標p2始終指向連結串列的最後一個結點。

if(head = NULL)   //如果連結串列為空,那麼頭指標指向第一個節點。 
	head = p1;
else: //如果連結串列有節點了,新建結點則要插入該結點的後邊。 
      //使該結點的next指向下一節點 
	{
		p2->next = p1;
	}
p2 = p1;//因為p2要始終保持是連結串列中最後一個結點,所以用p2指向p1
        //現在p2還是最後一個結點 

相關文章