单链表头插法的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 04:42:53
void CreateFromTail(LinkList L)
{
Node *r, *s;
int c;
int flag =1; /*设置一个标志,初值为1,当输入"$"时,flag为0,建表结束*/
r=L; /*r指针动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点*/
while(flag) /*循环输入表中元素值,将建立新结点s插入表尾*/
{
c=getchar();
if(c!='$')
{
s=(Node*)malloc(sizeof(Node));
s->data=c;
r->next=s;
r=s;
}
else
{
flag=0;
r->next=NULL; /*将最后一个结点的next链域置为空,表示链表的结束*/
}
}
}

一般定义都是以字符来结束,但如果题目要求是用-100来结束应该怎样改?我将c定义为整形后修改c!='-100'发现‘ ’内的只能是字符,超过2位数都可以编译可以运行但输入‘ ’内的数字后没反应

c=getchar()这句有问题,这句话只能得到一个字符的ASCII值,而-100是四个字符。用scanf("%d", c)就可以了

将-100转换成二进制(负数要用补码表示),然后查ASCII表,应该会得到相应的字符

while(x!=-100)//x为输入变量