| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 789 人关注过本帖
标题:请教一个关于结点指针初值的问题
只看楼主 加入收藏
空明七心
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-18
收藏
 问题点数:0 回复次数:10 
请教一个关于结点指针初值的问题

语句如下:
typedef struct listnode * ListNodePtr;

typedef struct listnode
{
int data;
ListNodePtr next;
} ListNode;

ListNodePtr head, new, current, previous, next;

请问ListNodePtr head, new, current, previous, next执行后, head, new, current, previous, next这些结点中的地址指针next(head->next,new->next,current->next,previous->next,next->next)的初值是指向哪里的?



搜索更多相关主题的帖子: 结点 指针 
2006-03-18 10:03
梦想中国
Rank: 2
等 级:新手上路
威 望:5
帖 子:539
专家分:0
注 册:2006-2-26
收藏
得分:0 
typedef struct LNode{
ElemType data;
struct LNode *next;
}Lnode,*LinkList;

2006-03-18 15:18
空明七心
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-18
收藏
得分:0 
以下是引用梦想中国在2006-3-18 15:18:00的发言:
typedef struct LNode{
ElemType data;
struct LNode *next;
}Lnode,*LinkList;

老大,啥意思啊?

2006-03-18 20:24
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
我都看不明白你问什么...

淘宝杜琨
2006-03-18 21:45
赤条仔
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-3-17
收藏
得分:0 

这个东西有点难看懂。。。


2006-03-18 23:16
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
收藏
得分:0 

测试过了,它们分别指向内存中任意一个不可预见的未知的区域


2006-03-18 23:24
空明七心
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-18
收藏
得分:0 
真是晕啊
以下是引用haishanglang在2006-3-18 23:24:00的发言:

测试过了,它们分别指向内存中任意一个不可预见的未知的区域

是啊是啊,我终于搞懂了,谢谢阿!

问题是来自于以下的源代码:

/* Monolithic example of implementing an ordered list using a linked list */

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

typedef struct listNode
{
   int data;
   struct listNode * next;
} ListNode;

typedef ListNode * ListNodePtr; 


int main()
{
   ListNodePtr head, new, current, previous, next;
   unsigned listSize;
   int i, anInt;

   listSize = 0;
   head = NULL;

   while (scanf("%d", &anInt) == 1)
   {
      if ( (new=malloc(sizeof(ListNode))) == NULL)
      {
           fprintf(stderr,"\nMemory Allocation for ListInsert failed! Aborting data entry!");
	   break;	
      }

      current = head;
      previous = NULL;

      /* Search to find where in insert new list node */
      while (current != NULL && current->data < anInt)
      {
	previous = current;
	current = current->next;
      }

      new->data = anInt;
      new->next = current;
      listSize++;

      if (previous == NULL)
      {
	head = new;
      }
      else
      {
	previous->next = new;
      }
   }

   /* Display integers in linked list */
   current = head;
   while (current != NULL)
   {
      printf("%d\n", current->data);
      current = current->next;
   }

   /* Deallocate memory used by list nodes */
   current = head;
   while (current != NULL)
   {
      next = current->next;
      free(current);
      current = next;
   }

   return EXIT_SUCCESS;
}

以上代码,稍作修改我已经上机通过,百思不得其解的是,当输入1,9,3,6时,程序输出了1,3,6,9
但是根据我笔算多次都是1,6,3,9
花了一个晚上到凌晨六点,硬是没看懂上面的程序的排序是怎么实现的,真是晕啊
哪位高人教教俺?
2006-03-19 10:28
空明七心
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-18
收藏
得分:0 
haishanglang老大能教我是如何测试的吗?我是找了半天书才找到的,您是用哪些代码来测这个呢?
2006-03-19 10:38
luo113927
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2006-3-15
收藏
得分:0 
没有进行初始华,当然就不能指向一个特定区域啦!

这样就会指向一个未知区域
2006-03-19 14:27
空明七心
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-18
收藏
得分:0 
哈哈,弄懂了,我少算了循环
2006-03-20 12:15
快速回复:请教一个关于结点指针初值的问题
数据加载中...
 
   



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

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