1. 程式人生 > >c語言-單鏈表(一)

c語言-單鏈表(一)

printf blog 定義 單鏈表 mage 操作 img 生成 return

定義節點:

typedef struct Node {
	int data;
	Node* pNext;
}NODE, *PNODE;

細節說明,PNode 就代表struct Node* ,上面的表單是也可以寫成如下形式,含義是一樣的

typedef struct Node {
	int data;
	Node* pNext;
}*PNODE,NODE ;

  

算法操作

1. 創建鏈表

//1.初始化鏈表
PNODE create_list(void) {
	int len,val;	
	printf("%s", "請輸入你要生成鏈表的長度\n");
	scanf("%d", &len);
	PNODE pHead = (PNODE)malloc(sizeof(PNODE));//創建一個頭結點
	PNODE pTail = pHead;//永遠指向最後一個
	pTail->pNext = NULL;
	for (int i = 0; i < len; i++)
	{
		printf("請輸入第%d個變量的數值 ", i);
		scanf("%d", &val);
		PNODE p = (PNODE)malloc(sizeof(PNODE));
		if (NULL == p) {
			printf("分配內存失敗");
		}
		p->data = val;	
		p->pNext = NULL;

		pTail->pNext = p;//尾節點指向掛在Ptail上
		pTail = p;//pTail 就是尾節點了
	}
	return pHead;
}

2. 顯示鏈表數據

//2.輸出
void show_list(PNODE pHead) {
	PNODE p = pHead->pNext;//第一個節點地址
	while (p != NULL)
	{
		printf("%d\n", p->data);
		p = p->pNext;
	}
	printf("\n");
	return;
}

3. 運行測試

int main()
{
	PNODE pHead = NULL;//代表 Struct Node* pHead=NULL;
	pHead = create_list();//
	show_list(pHead);
	return 0;
}

  技術分享

c語言-單鏈表(一)