想试一试找链表的中间结点,代码的第二个while循环后有一个输出,可是运行结果中没有输出cout>>p->data这一语句,想让他输出
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct LNode{
char data;
struct LNode *next;
}LNode,*LinkList;
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);
LNode *p,*q=L;
LNode *h=L->next;
while(h!=NULL){
cout<<h->data;
h=h->next;
}
while(q->next!=NULL){
p=p->next;
q=q->next;
if(q->next!=NULL)
q=q->next;
}
cout<<p->data;
}
34行,p=p->next,你上面p都没有赋值啊
LNode *p,*q=L; 这只是将L赋值给q,p没有初始化
数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633