找回密码
 注册
查看: 659|回复: 0

求助:链表问题---在线等!!!

[复制链接]
发表于 2005-12-20 20:34:08 | 显示全部楼层 |阅读模式
程序是将192.168.100.2和192.168.100.3调用append函数,存放到链表里,然后调用travel函数输出这两个字符串,现在是指能输出192.168.100.3,请大家帮忙看看,问题出在哪里?
#include<malloc.h>
#include<string.h>
#include <stdio.h>
#define null 0
typedef struct node
{
char data[20];
struct node *next;
}slnode;
struct node *h,*r;
int flag=0;
slnode *initiate()
{
h=r=(struct node*)malloc(sizeof(slnode));
h->next=null;
return h;}
//添加结点
void append(slnode *r,char str[20])
{
slnode *s;
s=(slnode*)malloc(sizeof(slnode));
strcpy(s->data,str);
s->next = null;
printf("%s\n",s->data);
r->next=s;
r=s;
flag++;
printf("flag=%d\n",flag);
}

//遍历结点
void travel(slnode *h)
{
slnode *p,*q;      
char str[20];
p=h->next;
if(flag>0)

  do
  {
  strcpy(str,p->data);
  printf("%s\n",str);
  q=p;
  p=p->next;
  h->next=p;
  free(q);
  flag--;
  printf("%d\n",flag);
   }
while(p!=NULL);

else{printf("Slnode isempty!\n");}
}

main()
{

char str1[20]="192.168.100.2";
char str2[20]="192.168.100.3";
h = initiate();

append(r,str1);
append(r,str2);
travel(h);


return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-7 15:12 , Processed in 0.216729 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表