各位帮我看看 链表 添加元素怎么出现 内存错误?
各位帮我看看有什么问题.........找了 好久总是找不到有什么问题
先谢谢了......
头文件List.h
程序代码:
#ifndef LIST_H_H #define LIST_H_H #include <stdio.h> #include <stdlib.h> #define ERROR 0 #define OK 1 typedef int Status; typedef char ElemType; typedef struct List { ElemType data; struct List * next; }LNode, * LinkList; Status GetElem(LinkList L,int i,ElemType &e); Status InsertElem(LinkList L,ElemType &e,int i=1);//在链表的第i个位置插入元素e,i默认为0(既插入到链表的第一个位置 Status DeleteList(LinkList &L ,int i,ElemType &e); LinkList CreateList(); Status AddElem(LinkList L,ElemType e);//在链表的最后添加节点 void print(LinkList &L); #endif
实现文件 List.cpp
程序代码:
#include "List.h" LinkList CreateList() { LinkList L; L=(LinkList)malloc(sizeof(LNode)); if(!L) { printf("内存分配失败!\n"); return ERROR; } L->next=NULL; return L; } Status AddElem(LinkList L,ElemType e) { LinkList p=L; while(p->next!=NULL) { p=p->next; } LinkList New=(LinkList)malloc(sizeof(LNode)); if(New==NULL) { printf("New内存分配失败!\n"); return ERROR; } New->data=e; p->next=New; return OK; } void print(LinkList &L) { LinkList p=L; while(p!=NULL) { printf("%c\n",p->data); } }
主函数 main.cpp
程序代码:
#include"List.h" int main() { LinkList L; L=CreateList(); ElemType ch; for(ch='a';ch!='g';ch++) AddElem(L,ch); print(L); getchar(); return 0; }