#include<iostream>
using namespace std;
typedef double ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
int CreatLink(LinkList &L,int n)///建立链表
{
LinkList p;
LinkList Head;
ElemType a;
int i;
L = (LinkList)malloc(sizeof(LNode));///链表头结点
L->next = NULL;
Head = L;
if (L == NULL) exit(0);
for (i = 0; i < n; ++i)
{
p = (LinkList)malloc(sizeof(LNode));///产生新结点
if (p == NULL) exit(0);
cin>>a;
a=p->data;
p->next = NULL;
Head->next = p;//尾插法插入新结点
Head = p;
}
return 1;
}
int ListDelete_L(LinkList &L, int i, ElemType &e) { // 算法.10
// 在带头结点的单链线性表L中,删除第i个元素,并由e返回其值
LinkList p,q;
p = L;
int j = 0;
while (p->next && j < i-1) { // 寻找第i个结点,并令p指向其前趋
p = p->next;
++j;
}
if (!(p->next) || j > i-1) exit(0); // 删除位置不合理
q = p->next;
p->next = q->next; // 删除并释放结点
e = q->data;
free(q);
return 1;
}
void ScanList_L ( LinkList L)
{
LinkList p=L->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
void main()
{ LinkList L;
int m;
cout<<"请输入链表节点的个数:"<<endl;
cin>>m;
cout<<"请输入链表的节点:"<<endl;
CreatLink(L,m);
cout<<"输入的循环链表各个节点的数为"<<endl;
ScanList_L(L);
cout<<"请输入要删除的循环链表节点位序:"<<endl;
int k; ElemType j;
cin>>k;
ListDelete_L(L,k,j);
cout<<"删除后得到的循环链表各个节点的数为"<<endl;
ScanList_L (L);
}
输出不是数字而是地址,请问怎么改呢