高手来,如何用C#实现一个添加,移出操作的时间复杂度为O(1)的双向链表,什么ArrayList,Queue,LinkedList都可以不用说了,说了也不给分.

zhiang75 2007-11-15 03:16:39
高手来,如何用C#实现一个添加,移出操作的时间复杂度为O(1)的双向链表,什么ArrayList,Queue,LinkedList都可以不用说了,说了也不给分.
这些的时间复杂度都不是O(1)
可以用不安全代码....
...全文
222 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
songxiaozhao 2007-11-19
  • 打赏
  • 举报
回复
学习,帮顶啦
songxiaozhao 2007-11-19
  • 打赏
  • 举报
回复
学习,顶上去
shinaterry 2007-11-19
  • 打赏
  • 举报
回复
那我就说用hashtable...

呵呵...
viena 2007-11-19
  • 打赏
  • 举报
回复
作业帖,转移非技术区~
jinjazz 2007-11-19
  • 打赏
  • 举报
回复
.net奇怪吗?如果你学过基础的数据结构应该知道,链表的时间负责度不可能是o(1)的,hashtable才有可能
zhiang75 2007-11-19
  • 打赏
  • 举报
回复
....???
viena 2007-11-19
  • 打赏
  • 举报
回复
晕啦,楼主真的是女的?早知道打死也不敢招拉~
zhiang75 2007-11-19
  • 打赏
  • 举报
回复
知道我是女的还招我..
viena 2007-11-19
  • 打赏
  • 举报
回复
楼主你让我想到了,小时候那些一点P大的事就给老师打小报告的女生,两个字:鄙视
viena 2007-11-19
  • 打赏
  • 举报
回复
在我看来,你自己没有有创意的想法,
提出一个要求让别人完全给你实现,就是作业;

//高手呢?.....都跑哪里去了?
不会你的问题或对你的问题不感兴趣的就不是高手?

时间复杂度是个理论值,一般指的是自己实现的代码
但调用.NET类库中的方法可能一个语句内部实现却很复杂
要求O(1)没有意义,
另不安全代码、垃圾回收什么的,不知与时间复杂度有何关系?
zhiang75 2007-11-18
  • 打赏
  • 举报
回复
高手....啊....
zhiang75 2007-11-17
  • 打赏
  • 举报
回复
在痛苦的等待高手...
zhiang75 2007-11-17
  • 打赏
  • 举报
回复
没有高手吗?...
nanjg 2007-11-17
  • 打赏
  • 举报
回复
mark
zhiang75 2007-11-16
  • 打赏
  • 举报
回复
高手...
兔子-顾问 2007-11-16
  • 打赏
  • 举报
回复
up
zhiang75 2007-11-15
  • 打赏
  • 举报
回复
..高手.........高手....高高手......
zhiang75 2007-11-15
  • 打赏
  • 举报
回复
高手呢?.....都跑哪里去了?
zhiang75 2007-11-15
  • 打赏
  • 举报
回复

public class MyQueue
{
public class Node
{
public Node(object data)
{
Data = data;
}

public Node NextNode = null;
public Node UpNode = null;
public object Data = null;
}
Node beginNode = null;
Node endNode = null;

public override string ToString()
{
return count.ToString();
}

int count = 0;

public int Count
{
get
{
return count;
}
set
{
count = value;
}
}

public Node Dequeue()
{
if (beginNode.NextNode == null && count>1)
{
return null;
}


Node Rerurn = beginNode;
if (Rerurn != null)
{
beginNode = beginNode.NextNode;
--count;
Rerurn.NextNode = null;
Rerurn.UpNode = null;

}



return Rerurn;
}

public void Enqueue(Node node)
{
if (beginNode == null)
{
beginNode = node;
endNode = node;
}
else
{
node.UpNode = endNode;
endNode.NextNode = node;
endNode = node;
endNode.NextNode = null;
}
++count;
}
}



这个是我写的,问题是不是O(1)

奇怪的.net
奇怪的问题...
zhiang75 2007-11-15
  • 打赏
  • 举报
回复
我这可不是作业...是项目中的问题...
look
http://blog.csdn.net/zhiang75/archive/2007/11/07/1871987.aspx
加载更多回复(6)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧