|
发表于 2021-8-26 11:21:34
|
显示全部楼层
闲得无聊 闲得无聊 闲得无聊
#pragma warning(disable:4996)-------------消除错误警告(高版本编译器存在得问题低版本无,具体版本未测试vc6是没有的)
-------------在编译器中可设置-----------
#pragma warning(disable:6011)----同上
#include <stdio.h>--------标准得输入输出库 --io
#include <stdlib.h>---------动态库
#include <string.h>---------字符处理 库
#include <Windows.h> -------window 库
//静态链表  节点的声明
struct LinkNode
{
        int num;//数据域
        struct LinkNode* next;//指针域
};
void test01()
{
        struct LinkNode node1 = { 10,NULL };
        struct LinkNode node2 = { 20,NULL };
        struct LinkNode node3 = { 30,NULL };
        struct LinkNode node4 = { 40,NULL };
        struct LinkNode node5 = { 50,NULL };
        //建立关系
        node1.next = &node2;
        node2.next = &node3;
        node3.next = &node4;
        node4.next = &node5;
        //如何遍历这个链表  
        //创建一个指针 指向第一个节点
        struct LinkNode* pCurrent = &node1;
        while (pCurrent != NULL)
        {
                printf("%d\n", pCurrent->num);
                pCurrent = pCurrent->next;
        }
}
//动态链表
void test02()
{
        struct LinkNode * node1=malloc(sizeof(struct LinkNode));
        struct LinkNode* node2 = malloc(sizeof(struct LinkNode));
        struct LinkNode* node3 = malloc(sizeof(struct LinkNode));
        struct LinkNode* node4 = malloc(sizeof(struct LinkNode));
        struct LinkNode* node5 = malloc(sizeof(struct LinkNode));
        node1->num = 10;
        node2->num = 20;
        node3->num = 30;
        node4->num = 40;
        node5->num = 50;
        //建立关系
        node1->next = node2;
        node2->next = node3;
        node3->next = node4;
        node4->next = node5;
        node5->next = NULL;
        //遍历链表
        struct LinkNode* pCurrent = node1;
        while (pCurrent != NULL)
        {
                printf("%d\n", pCurrent->num);
                pCurrent = pCurrent->next;
        }
        //释放节点
        free(node1);
        free(node2);
        free(node3);
        free(node4);
        free(node5);
}
int main(void)//---------主函数,(其实并非程序最开始执行的地方,按顺序的话应该是第二个执行得在main执行还有其他的函数)
{
        //test01();
        test02();
        return EXIT_SUCCESS;
} |
|