c语言-单链表(一)
定义节点:
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(NODE));//创建一个头结点 PNODE pTail = pHead;//永远指向最后一个 pTail->pNext = NULL; for (int i = 0; i < len; i++) { printf("请输入第%d个变量的数值 ", i); scanf("%d", &val); PNODE p = (PNODE)malloc(sizeof(NODE)); 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; }
个人签名:天行健,君子以自强不息