| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 582 人关注过本帖
标题:帮忙解释下这个对IP地址排序的链表程序
取消只看楼主 加入收藏
yangrui
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-30
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:1 
帮忙解释下这个对IP地址排序的链表程序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 269
typedef unsigned char BYTE ;
 
typedef struct _IP {
 BYTE seg[4];
 struct _IP *next;
}IP;
 
int main()
{
 FILE *fp1,*fp2;
 int i, found,s,j;
 char c[100];
 IP *pip, *ptem, *pfind, *judge;
 BYTE tem_ip[4];
 pip = (IP *)malloc(sizeof(IP));
 pip->next = pip;

if((fp1=fopen("ip1","r"))==NULL)
     {
         printf("cannot open infile\n");
         exit(0);
     }
     if((fp2=fopen("route","w"))==NULL)
     {
         printf("cannot open outfile\n");
         exit(0);
     }

   for(s=1;s<=SIZE;s++)
{
   fscanf(fp1,"%s",&c);
   if(feof(fp1))  {fclose(fp1);exit(0);}
      
sscanf(c,"%d.%d.%d.%d",&tem_ip[0], &tem_ip[1], &tem_ip[2], &tem_ip[3]);
 
  if (!(tem_ip[0] || tem_ip[1] || tem_ip[2] || tem_ip[3]))
   break;
  ptem = (IP *)malloc(sizeof(IP));
  for (i = 0; i < 4; i++)
   ptem->seg[i] = tem_ip[i];
 
  found = 0;
  pfind = pip;
  while (pfind->next != pip) {
   for (i = 0; i < 4; i++) {
    if (ptem->seg[i] < pfind->next->seg[i]) {
     found = 1;
     break;
    } else if (ptem->seg[i] > pfind->next->seg[i]) {
     break;
    }
   }
   if (found)
    break;
   pfind = pfind->next;
  }
 
  ptem->next = pfind->next;
  pfind->next = ptem;
 
 }
 
 printf("\nSorted ip address:\n");
 ptem = pip->next;
 while (ptem != pip) {
输出};

主要是排序的那部分,输出的我懂,请各位大侠帮帮忙!


[ 本帖最后由 yangrui 于 2010-4-16 16:38 编辑 ]
搜索更多相关主题的帖子: 链表 地址 解释 
2010-04-16 10:03
yangrui
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-30
收藏
得分:0 
以下是引用liuzhiping在2010-4-16 18:28:40的发言:

楼主把IP转换成整数比较不要好一些。。。。
我自己已经整明白了,还是谢谢你的建议
2010-04-17 14:50
快速回复:帮忙解释下这个对IP地址排序的链表程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014233 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved