线性链表的结点数(程序)

来源:百度知道 编辑:UC知道 时间:2024/06/04 15:09:38
字符存入线性链表中,在计算线性链表的长度

我执行到循环语句的时候调不出来了,请各位达人帮忙看一看!

#include <iostream.h>
#include <stdio.h>

class linklist
{
public:
char data;
linklist *next;
};

int changdu(linklist *head) //计算链表长度
{
int count=0;
linklist *p;
p=head;
while (p!=NULL)
count++;
return count;
}

void main()
{
int dis;
char ch;
//初始化链表头节点
linklist *head=new linklist;
linklist *p=head;
head->next=NULL;
linklist *q;

cout <<" 请输入若干字符:"<<endl;
cin>>ch;
// cout<<ch;
//插入节点,直到遇到#结束
while (ch!='#')
{
q=new linklist;

q->data=ch;

q->next=NULL;

p->next=q;

p=q;

cout<<p->data<<endl;

cin>>ch;
}

cout<<"*

int changdu(linklist *head) //计算链表长度
{
int count=0;
linklist *p;
p=head;
while (p++!=NULL) //原来你写的是while(p!=NULL),这样指针p一直不改变,当然无法退出循环了。
count++;
return count;
}

int changdu(linklist *head) //计算链表长度
{
int count=0;
linklist *p;
p=head;
while (p!=NULL)
{
count++;
p=p->next; //在这里加一行。你的指针P没动。
}
return count;
}

while (p!=NULL)
{
count++;
//加一行,P指向下一结点
p=p->next;
}