链表,想测试一下代码ListDelete(L,3),尾插法建立链表后,删除链表中第三个元素后遍历输出
问题相关代码,请勿粘贴截图
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct LNode{
char data;
struct LNode *next;
}LNode,*LinkList;
//按位序删除
bool ListDelete(LinkList &L,int i){
if(i<1)
return false;
//以下六行可用LNode *p=GetElem(L,i-1)代替;找到第i-1个节点
LNode *p;//指向当前正在扫描结点的指针
int j=0;//当前正在扫描节点的位置
p=L;
while(p!=NULL&&j<i-1){
p=p->next;
j++;
}
if(p==NULL)
return false;
if(p->next=NULL)
return false;
LNode *q=p->next;
p->next=q->next;
free(q);
return true;
}
//尾插法建立单链表
LinkList List_TailInsert(LinkList &L){
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL; //这一句不写也没事,但头插法必须要写
LNode *s,*r=L;//指向表尾
char x;
cin>>x;
while(x!='z'){
s=(LNode *)malloc(sizeof(LNode));
s->data=x;
r->next=s;
r=s;
cin>>x;
}
r->next=NULL;
return L;
}
int main(){
LinkList L;
List_TailInsert(L);
ListDelete(L,3);
LNode *p=L->next;
while(p!=NULL){
cout<<p->data;
p=p->next;
}
}
运行结果及报错内容
我想测试一下代码,测试ListDelete(L,3)这块代码,删除链表中第三个元素后遍历输出,但是我的运行后不能遍历输出
Process exited after 16 seconds with return value 3221225477
我想要达到的结果
我想测试一下代码,测试ListDelete(L,3)这块代码,删除链表中第三个元素后遍历输出