关于C++链表的问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 04:56:07
具体代码如下:
#include<iostream>
#include<string>
using namespace std;

typedef struct node
{
int data;
struct node * next;
}linklist;

linklist * createlinklist()
{
char ch;
int x;
linklist * head;
linklist * r;
linklist * p;
head=(linklist *)malloc(sizeof(linklist));
head->next=NULL;
r=head;
ch='*';
cout<<"请输入各结点上的数据:(数据输入完毕以“#”结束)"<<endl;
while(ch!='#')
{
cin>>x;
p=(linklist *)malloc(sizeof(linklist));
p->data=x;p->next=NULL;
r->next=p;
r=r->next;
ch=getchar();
}
return head;
free(p);
}

linklist * locatelinklist(linklist * l,int mid)
{
linklist * li;
li=l->next;
while((li!=NULL)&&(li->data!=mid))
{
li=li->next;
}
return li;
}

int main()<

为什么cin,cout会和malloc混用啊既然都c++了那就用new好了,ch=getchar()用cin了还用getchar做什么,统一一下吧,也许问题就能解决了

he=new linklist;
效果一模一样

while(ch!='#')
{
cin>>x;
p=(linklist *)malloc(sizeof(linklist));
p->data=x;p->next=NULL;
r->next=p;
r=r->next;
ch=getchar();
} 不能用这种方法区分读进来的是数字还是字母

没有仔细看,感觉这里有问题
while(sh->next!=NULL) //这里应该判断的是sh是否等于NULL吧
{
cout<<sh->data;
cout<<" ";
sh=sh->next;
}

你x定义成char,然后存储的时候可以转换成int嘛