zoukankan      html  css  js  c++  java
  • 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", "请输入你要生成链表的长度
    ");
    	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
    ", p->data);
    		p = p->pNext;
    	}
    	printf("
    ");
    	return;
    }
    

    3. 运行测试

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

      

  • 相关阅读:
    mongdb
    网络编程
    分布式锁与事务
    mongodb
    Angular4
    思考
    kafka
    Spark总结
    你不知道的javaScript笔记(1)
    vue2.0 配置 选项 属性 方法 事件 ——速查
  • 原文地址:https://www.cnblogs.com/clc2008/p/6815427.html
Copyright © 2011-2022 走看看