第一次用C++写链表

来源:互联网 发布:mac itunes 导入铃声 编辑:程序博客网 时间:2024/06/03 08:09

malloc函数

头文件:#include <malloc.h>#include <alloc.h>
(注意:alloc.h 与 malloc.h 的内容是完全一致的。)

功能:分配长度为num_bytes字节的内存块
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。

附上非常简单的链表代码
(因为不会写C++,所以基本是看一句写一句写出来的╮(╯▽╰)╭)

#include <stdio.h>#include <stdlib.h>#include <malloc.h>//定义链表中的节点typedef struct node {    int member;          //对象    struct node *pNext;  //下一指针}Node, *pNode;//创建链表函数pNode CreateList() {    int i;          //用于循环    int len;        //存放有效字节字数    int val;        //临时存放用户输入数据    pNode pHead = (pNode)malloc(sizeof(Node));      //分配一个不存放数据的头结点    pNode pTail = pHead;        //链表尾节点先设定为头结点    pTail->pNext = NULL;        //将尾指针的pNext置为空    printf("请输入节点个数:");    scanf_s("%d", &len);    for (i = 0; i < len; i++) {        printf("请输入第%d个节点的数值:", i + 1);        scanf_s("%d", &val);        pNode pNew = (pNode)malloc(sizeof(Node));       //为节点分配空间        pNew->member = val;         //将用户输入的数据赋给节点的成员        pTail->pNext = pNew;        //将尾节点的指针指向新的节点        pNew->pNext = NULL;         //将新节点指针置为空        pTail = pNew;               //尾节点设置为新的节点    }    return pHead;                   //返回头节点}void TraverseList(pNode pHead) {    pNode p = pHead->pNext;    while (p != NULL) {             //节点不为空的话继续循环        printf("%d ", p->member);        p = p->pNext;    }    printf("\n");    return;}int main(){    pNode pHead = NULL;             //定义初始化头节点,等价于 struct Node pHead == NULL    pHead = CreateList();           //创建一个非循环单链表,并将该链表头节点地址赋给pHead    TraverseList(pHead);            //调用遍历链表函数    return 0;                       }