1. 程式人生 > >linux 下c語言建立單向動態連結串列的理解

linux 下c語言建立單向動態連結串列的理解

#include <stdio.h>
#include <malloc.h>              //分配記憶體要加上這個庫函式
struct weapon {
  int price;
  int atk;
  struct weapon* next;
};  //建立一個武器庫的結構體,記得建立完成之後要加; 如果想要例項化可以在後面直接跟結構體變數名稱

//接下來的就是動態建立單項鍊表的函式
struct weapon * creat ()
{
 struct weapon * p1,*p2,*head;  //建立三個 struct weapon * 型別的指標
 int n=0; //建立計數變數
 head=NULL; //連結串列頭暫時為空
 p1=p2=(struct weapon *)malloc(sizeof(struct weapon)); //使用malloc分配sizeof(struct weapon)大小的記憶體空間
 scanf("%d,%d",&(p1->price),&(p1->atk));
 while((p1->price)!=0)
 {
   n++;
  if(n==1)
     head=p1;
  else
     p2->next=p1;
     p2=p1;