單鏈表求表長
阿新 • • 發佈:2018-12-24
下一個 空間 控制 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;
}
單鏈表求表長