就输出单链表出现了这个从来没见过的错误,网上找的方法都没啥用
#include <stdlib.h>
#include
using namespace std;
typedef int ElemType;
typedef struct LNode
/结点类型定义/
{ ElemType data;
struct LNode* next;
}LNode, * LinkList;
/* LinkList为结构指针类型*/
void InitList(LinkList& L)
{ L = new LNode;
L->next = NULL;
}//尾插法创建单链表中数据元素
void CreateList(LinkList& L, int n){
LinkList r = L; cout<<"输入链表中的数据元素: "<< endl;
for (int i = 1; i <= n; i++)
{ LNode* s = (LNode*)malloc(sizeof(LNode));
int k;
cin >> k;
s->data = k;
r->next = s;
r = s;
}
}
void printList(LinkList L)
{ LinkList p;
p = L->next;
cout << "输出链表中的数据元素:" << endl;
while (p!=NULL)
{
cout << p->data ;
p = p->next;
}
}
//单链表中按值查找数据元素
LinkList LocationElem(LinkList L, ElemType e){
LinkList p = L->next;
// p指向第一个结点
while (p && p->data != e)
p = p->next;
return p;
}
int ListInsert(LinkList& L, int i, ElemType e)
{ LinkList p = L, s;
int j = 0;
while (p && j < i - 1)
{
j++;
p = p->next;
}
if (!p || j > i - 1) return 0;
s = new LNode;
s->data = e;// 使新结点数据域的值为 e
s->next = p->next;// 将新结点插入到单链表 L 中
p->next = s;// 修改第 i-1 个结点指针
return 1;
}
int ListDelete(LinkList& L, int i, ElemType& e)
{ LinkList p = L, q;
int j = 0;
while (p->next != NULL && j < i - 1)
{
p = p->next;
++j;
}
if (p->next == NULL || j > i - 1)
return 0; // 删除位置不合理
q = p->next; // 用指针 q 指向被删除结点
p->next = q->next;// 删除第 i 个结点
e = q->data;// 取出第 i 个结点数据域值
free(q);// 释放第 i 个结点
return 1;
}
void ListLength(LinkList L)
{ LinkList p;
int j = 0;
p = L->next;
while (L->next)
{
j++;
L = L->next; }
cout<<"单链表表长是:\n"<<j<<endl;
}
还有什么别的错误也请指出