• C++


    ////////////////////////////////【 链表 】////////////////////////////////////////////////////////////////
    // 1.链表的概念 : 若干个对象, 用指针串联起来;
    // 2.链表的实现 : 必须在struct中添加一个指针作为成员, 该指针指向一个对象
    //			如果该指针为NULL, 表示它是最后一个对象.
    // 3.链表的特征 :
    //	a.链表头 : 必须指向链表中的第一个对象, 通常用链表头代表整个链表;
    //	b.链表尾 : 必须指向链表中的最后一个对象且最后一个对象的pNext必须为NULL;
    // 4.链表的遍历 : 用指针pNext得到下一个对象.
    /////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    #include "stdafx.h"
    #include <tchar.h>
    
    
    // 带链表的结构体_Student
    struct _Student
    {
    	int id;
    	char szName[128];
    	_Student * pNext;	// 存储下一个结构体的地址
    };
    
    // 初始化
    struct _Student g_Student[4] = 
    {
    	{001, "张三", NULL},
    	{002, "李四", NULL},
    	{003, "王五", NULL},
    	{004, "赵六", NULL}
    };
    
    // 查找链表id
    _Student * Find(_Student * pHead, int id)
    {
    	_Student * pStu = pHead;
    	while (pStu)
    	{
    		// 如果当前节点的id等于要查找的id
    		if (id == pStu->id)
    		{
    			// 则返回当前的链表指针
    			return pStu;
    		}
    
    		// 指向下一个节点
    		pStu = pStu->pNext;
    	}
    
    	// 如果没有找到匹配的id, 则返回一个空的链表指针
    	return NULL;	
    }
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	////////////////////////////////【 链表的构造 】///////////////////////////////
    	// g_Student[0].pNext 指向 g_Student[1] 的内存地址
    	g_Student[0].pNext = &g_Student[1];
    	g_Student[1].pNext = &g_Student[2];
    	g_Student[2].pNext = &g_Student[3];
    	g_Student[3].pNext = NULL;
    
    	////////////////////////////////【 链表的遍历 】///////////////////////////////
    	//_Student * pStu = g_Student;
    	_Student * pStu = &g_Student[0];
    	while(pStu)
    	{
    		static int i = 0;
    		printf("g_Student[%d] : id = %d  szName = %s 
    ", i, pStu->id, pStu->szName);
    		pStu = pStu->pNext;	// 指向链表的下一个节点对象
    		++i;
    	}
    
    	// 查找id为004的链表节点
    	pStu = Find(&g_Student[0], 004);
    	if (pStu)
    	{
    		printf("找到id为004的链表节点对象: szName = %s 
    ", pStu->szName);
    	}
    	getchar();
    	return 0;
    }
    

      

  • 相关阅读:
    c# gdi设置画刷透明
    char,varchar,nvarchar,text区别与联系
    banner无缝轮播【小封装】
    div中的内容垂直居中的五种方法
    jQuery hover() 方法
    年过三十,我为什么要学习ios 与安卓App 移动端技术
    CentOS 中用 Split 命令分割文件的方法
    centos E440 安装无线网卡
    CentOS7修改默认运行级别
    iwconfig: command not found 解决方案
  • 原文地址:https://www.cnblogs.com/DuanLaoYe/p/5726396.html
Copyright © 2020-2023  润新知