1. 程式人生 > >單鏈表求表長

單鏈表求表長

下一個 空間 控制 malloc 繼續 系統 urn nod 申請

#include <stdio.h>
#include <stdlib.h>
typedef struct LNode *Node;  //定義指向LNode類型的指針Node
struct LNode {  //定義節點
int data;  //存放數據
Node next;  //指向下一指針
};
typedef NodeList;

List init(){
int d;  //存放從控制臺輸入的數值
LNode *q;  //定義指針q  
List L=(List)malloc(sizeof(LNode));  //向系統申請分配指定LNode個字節的內存空間
L->Next=NULL;  //尾指針設為空
while((scanf("%d", &d))!=‘-1‘){  //等待用戶輸入(-1用於程序終止)
q=(LNode*)malloc(sizeof(LNode));  //繼續開辟內存空間
q->data=d;  //向節點中data賦值
q->Next=L->Next;  //指向下一個節點
L->Next=q;  //指向新開辟的節點
}
return L;
}

int ListLength( List L ){
int j=0;
LNode *p;
p=L->Next;
while(p!=NULL)
{
p=p->Next;
j++;
}
return j;
}

int main()
{
List L = init();
printf("%d\n", ListLength(L));
return 0;
}

單鏈表求表長