定義節點: 細節說明,PNode 就代表struct Node* ,上面的表單是也可以寫成如下形式,含義是一樣的 演算法操作 1. 創建鏈表 2. 顯示鏈表數據 3. 運行測試 ...
定義節點:
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; }