社区
C#
帖子详情
请教高手?
linxianliang5201314
2010-05-12 05:54:53
使用C#如何实现一个栈
要求 1.不得使用系统库函数
2.要保证线程安全
3. 如何维护栈的自动增长
...全文
207
10
打赏
收藏
请教高手?
使用C#如何实现一个栈 要求 1.不得使用系统库函数 2.要保证线程安全 3. 如何维护栈的自动增长
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cuike519
2010-05-12
打赏
举报
回复
public class Stack {
private int m_Size = 16;
// 栈容器
private object[] m_items;
private int m_topIndex = -1;
public Stack() {
this.m_items = new object[m_Size];
}
public void Push(object el) {
if (m_topIndex >= m_Size - 1) {
// 扩大两倍的存储,把原来的数组复制到新数组里面
object[] desItems = new object[this.m_items.Length * 2];
Array.Copy(m_items, 0, desItems, 0, this.m_Size);
this.m_items = desItems;
}
m_topIndex++;
m_items[m_topIndex] = el;
}
public object Pop() {
if (m_topIndex < 0) {
throw new InvalidOperationException("stack empty");
}
object el = m_items[m_topIndex];
m_items[m_topIndex] = null;
m_topIndex--;
return el;
}
}
上面是一个简单的具有出栈和入栈操作用数组实现的栈,未经测试,只说明操作仅供参考。另外还可以使用链表实现。
貌似是数据结构的书里面都有类似的代码吧。。。
linxianliang5201314
2010-05-12
打赏
举报
回复
有没有高手把答案写我参考一下啊?
赵王爷
2010-05-12
打赏
举报
回复
把C#当做C语言就可以实现一个栈,自己写个类吧。
喜-喜
2010-05-12
打赏
举报
回复
[Quote=引用楼主 linxianliang5201314 的回复:]
使用C#如何实现一个栈
要求 1.不得使用系统库函数
2.要保证线程安全
3. 如何维护栈的自动增长
[/Quote]
不得使用系统库函数!找本数据结构方面的书,自学一下...
linxianliang5201314
2010-05-12
打赏
举报
回复
有没有高手把答案写我参考一下啊?
cuike519
2010-05-12
打赏
举报
回复
自己实现就用数组实现,只在数组的一头插入和删除就行了。
线程安全是系统保证的和你的数据结构没有关系。
自动增长则可以设置一个岗哨标志位,没当达到岗哨的时候将数组的长度扩大一倍(或者固定一个值,一般是增加16个槽)
stg609
2010-05-12
打赏
举报
回复
可以用List这种集合不?
要实现栈,只要搞清楚Last in first out的机制,然后自已实现出栈、入栈这两个基本方法就可以了。至于线程安全,可以在执行出栈和入栈操作时加上锁。
自动增长?你是指容量不定?如果是List的话,就可以实现了。
理不完的逻辑
2010-05-12
打赏
举报
回复
学习~!顶
linxianliang5201314
2010-05-12
打赏
举报
回复
学习 请多多指教啊
缭绕飘渺
2010-05-12
打赏
举报
回复
不使用系统库函数
就要了解他们的实现原理
自己去实现个
楼主是要学习
还是应用啊
学习可以
应用的话我认为你自己写的应该还赶不上系统的吧
高校科技服务机构如何提升技术转移转化效率?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
企业如何通过数据分析提升自身竞争力和创新能力.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
高校院所如何有效追踪科研成果转化,提升科研效能?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
政府及园区如何精准掌握辖区企业创新现状,制定科学有效的产业扶持政策?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
负荷预测基于Transform-KAN的负荷预测研究(Python代码实现)
内容概要:本文提出并实现了一种基于Transform-KAN混合架构的电力负荷预测模型,旨在通过融合Transformer在长序列建模中的注意力机制优势与Kolmogorov-Arnold Network(KAN)在函数逼近方面的高精度非线性拟合能力,显著提升负荷预测的准确性与鲁棒性。研究系统阐述了模型的整体结构设计、输入特征工程、训练流程及关键超参数配置,并利用真实电力系统历史数据进行多步预测实验,验证了该方法在处理非线性、非平稳负荷序列时的优越性能。重点探讨了新型神经网络结构在时间序列预测任务中的创新应用,为复杂电力系统负荷的精准预估提供了有效的技术路径。; 适合人群:具备一定编程基础和机器学习知识,从事电力系统、能源管理或时间序列预测相关研究的研发人员,尤其适合工作1-3年希望深入理解前沿预测模型的技术人员。; 使用场景及目标:①应用于电网调度、能源管理系统中对未来电力负荷的精确预测;②探索Transformer与KAN等新兴神经网络模型在实际工业场景中的融合设计与实现方法;③为学术研究提供可复现的高性能负荷预测基准方案。; 阅读建议:此资源以Python代码实现为核心,强调理论与实践相结合,建议读者在学习过程中仔细研读模型架构细节,动手运行并调试代码,结合实验结果深入理解各模块的作用与优化策略,从而全面掌握该先进预测方法的设计精髓。
C#
111,128
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章