• 8.c语言程序设计---高级数据表示


     单向链表实例

    链表结构:需要增加数据再增加,不用先定义内存

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    //单向链表,结构体
    
    struct Node  //结构体节点
    {
        char Bookname[50]; //书名
        int BookNumber;    //书号
        float BookPrice; //价格
        struct Node *next; //为后门指向下一个节点用
    };
     
    struct Node *AppendNode(struct Node * head,char *Bookname,int BookNuber,float price)    //struct Node 表示返回类型为这个的函数,就像 int test(){} 声明函数一样
    {
        struct Node * pNewNode = NULL;
        struct Node * pHeadNode = head;
        pNewNode = (struct Node *)malloc(sizeof(struct Node)); //申请内存给新建的节点
        if (pNewNode == NULL) //判断是否申请成功
        {
            printf("memory malloc failed!
    ");
            exit(0);
        }
        if (head == NULL)  //判断是否有头节点,传进来的参数
        {
            head = pNewNode;//如果没有头节点的话,就让它指向新建的节点
        }
        else
        {
            while (pHeadNode->next != NULL)
            {
                pHeadNode = pHeadNode->next; //找到最后一个节点,它的下一个节点为空才跳出循环
            }
            //这个时候pHeadNode 已经来到了最后一个节点
            pHeadNode->next = pNewNode; //让它指向新建的节点,新的节点就是最后一个节点
        }
        //可以给它数据了,书名 价格之类
        strcpy(pNewNode->Bookname, Bookname);
        pNewNode->BookNumber = BookNuber;
        pNewNode->BookPrice = price;
        pNewNode->next = NULL; //因为它已经是最后一个节点了,让它指向NULL
        return head;
    }
    int main()
    {
        struct Node * head = NULL; //链表头指针
        head=AppendNode(head,"yuwen",100,15.6); //添加功能
        AppendNode(head, "shuxue", 100, 15.6);
        return 0;
    }

     

  • 相关阅读:
    JavaScript Eval 函数使用
    WPFToolkit Calendar & DatePicker 使用介绍
    Windows Mobile 6.5 配置环境,数据库访问,部署简单实例
    ThreadPool.QueueUserWorkItem 方法 (WaitCallback)
    Windws Mobile 6.5 Professional ADO.NET数据访问
    WPF调用Web Services
    c#中Interface的理解
    PagesSection.MaintainScrollPositionOnPostBack 属性
    EclipseRCP中文语言包版本不一致,导致导出错误
    SWT美化开源控件网站
  • 原文地址:https://www.cnblogs.com/trevain/p/14471623.html
Copyright © 2020-2023  润新知