zoukankan      html  css  js  c++  java
  • 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;
    }

     

  • 相关阅读:
    随想 20180517
    随想 20180516
    随想 20180514
    alpinelinux
    装系统时总是提示 保存分区表时出现错误(0000000001)函数不正确
    kindeditor在Firefoxt 和 Chrome 下不能取到值的解决方法
    浏览器兼容
    php生成随机密码的几种方法
    按钮效果
    linux下修改/dev/shm tmpfs文件系统大小
  • 原文地址:https://www.cnblogs.com/trevain/p/14471623.html
Copyright © 2011-2022 走看看