| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 549 人关注过本帖
标题:[求助]讲解运行程序结果
只看楼主 加入收藏
yanyupeng
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-9-7
收藏
 问题点数:0 回复次数:8 
[求助]讲解运行程序结果
public class Class1
{
Entry top;
public void Push(object data)
{
top=new Entry(top,data);
}
public object Pop()
{
if(top==null)throw new InvalidOperationException();
object result=top.data;
top=top.next;
return result;
}
class Entry
{
public Entry next;
public object data;
public Entry(Entry next,object data)
{
this.next=next;
this.data=data;
}
}

class Program
{
static void Main(string[] args)
{
Class1 s=new Class1();
s.Push(1);
s.Push(10);
s.Push(100);
s.Push(1000);
s.Pop();
s.Pop();
Console.WriteLine(s.Pop());
}
}
}
代码如上,请问输出结果为什么是10。
搜索更多相关主题的帖子: 运行 讲解 结果 
2006-09-07 18:06
yanyupeng
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-9-7
收藏
得分:0 
请会的人朋友告诉我下 谢谢了
2006-09-07 18:07
yanyupeng
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-9-7
收藏
得分:0 
怎么等半天了还是没人回答呢,小弟急!请知道的讲讲
2006-09-07 18:13
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
s.Pop(); 返回1000, 100返回到頭上
s.Pop(); 返回100, 10返回到頭上

Console.WriteLine(s.Pop()); 返回10

跟盞一樣

lifo表

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-07 18:13
yanyupeng
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-9-7
收藏
得分:0 
我运行的时候是这个步骤,可是为什么程序会这样执行呢?
2006-09-07 18:15
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
這是一種包含類

public class person
{
public person son;
public string name;

public person(person _son,string _name)
{
son=_son;
name=_name;
}
}

push就是指定你的兒子和兒子的名字, 你兒子在構造時又指定了你孫子


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-07 18:24
yanyupeng
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-9-7
收藏
得分:0 

你说的我明白主要是s.Pop()反复调用那里,是不是第一个s.Pop()调用后把data=1000这个值个销毁的 而存在data里的值就变成了100,是这样吗?

2006-09-07 18:35
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 

首先data是存在一個entry里的數據
s.Pop()後
對1000的那個entry的引用轉為對entry.next了(所以1000的那個entry此時沒了顯示引用,不確定的時間後被GC銷毀)
所以此時的top指向的是100的那個entry


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-08 08:56
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 

top(top,1000) 括号里的是该top的数据成员
top(top,100)
top(top,10)往上依次类推
top(top,1)这个里面的top数据成员就是第一次生成的top,使用它来构造另一个top,生成一个新的top
top(next,data)这个是Class1 s=new Class1();生成的,没有任何数据。


2006-09-08 09:05
快速回复:[求助]讲解运行程序结果
数据加载中...
 
   



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

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