`
isiqi
  • 浏览: 16359210 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

数据结构(C#)--单链表

阅读更多

2007年最后一个月在忙碌度过了,最近在网上下了一本C#版本的数据结构的电子书,正好我也打算在把数据结构在过一遍,刚好可以看这本,还可以提高一下英文的阅读能力。

书名是《DATA STRUCTURES AND ALGORITHMS USING C#》,作者:MICHAEL MCMILLAN

以后我会陆续把这本数的心得发上来,同时也把自己亲手实践过的代码发上来,大家一起学习,一起进步。如果有什么错误,大家可以发邮件或者留言给我。谢谢。由于该书的结构和我们一般教材的结构不是很一样,所以我按照一般教材的顺序,先从链表开始,原书链表是在第十一章才讲的。书中代码有问题的地方我会在注释中标注出来。

namespaceDataStruct
...{
//定义单链表的表头
publicclassNode
...{
//存储数据,定义为基类,可以存不同类型的数据
publicObjectElement;
//指向下一个结点的引用
publicNodeLink;

//构造空结点
publicNode()
...{
this.Element=null;
this.Link=null;
}

//带参数的构造器
publicNode(Objectelement)
...{
this.Element=element;
this.Link=null;
}

}


publicclassLinkedList
...{
//此处原书有误,不应该设置为peotected,这样会导致结点没有实例化
publicNodeHeader;
publicLinkedList()
...{
Header
=newNode("header");
}


//查找链表中的元素
privateNodeFind(Objectitem)
...{
NodeCurrent
=newNode();
Current
=Header;
//书中此处代码有误
//while(Current.header!=item)
while(Current.Element!=item)
...{
Current
=Current.Link;
}

returnCurrent;
}


//在链表中插入元素
publicvoidInsertNode(ObjectnewItem,Objectafter)
...{
NodeCurrent
=newNode();
NodeNewNode
=newNode(newItem);
Current
=Find(after);
if(Current!=null)
...{
NewNode.Link
=Current.Link;
Current.Link
=NewNode;
}

}



publicNodeFindPrevious(Objectn)
...{
NodeCurrent
=Header;
while(!(Current.Link==null)&&(Current.Link.Element!=n))
...{
Current
=Current.Link;
}

returnCurrent;
}


//删除结点
publicvoidRemove(Objectitem)
...{
NodeP
=FindPrevious(item);
if(!(P.Link==null))
...{
P.Link
=P.Link.Link;
}

}


//打印链表
publicvoidPrintList()
...{
NodeCurrent
=newNode();
Current
=this.Header;
while(Current.Link!=null)
...{
Console.WriteLine(Current.Link.Element);
Current
=Current.Link;
}

}


}


classProgram
...{
staticvoidMain(string[]args)
...{
//实例化结点
NodeFirstNode=newNode("Tommy");
NodeSecondNode
=newNode("weiwei");
Int32Num
=5;
//因为我们定义结点的时候是用object类型,所以结点可以存储不同类型
NodeThirdNode=newNode(Num);
FirstNode.Link
=SecondNode;
SecondNode.Link
=ThirdNode;
ThirdNode.Link
=null;
LinkedListMyList
=newLinkedList();
//将头结点指向第一个结点
MyList.Header.Link=FirstNode;
//插入结点
MyList.InsertNode("advantech","weiwei");
MyList.InsertNode(
"插入链表","Tommy");
//打印链表中的结点元素
MyList.PrintList();
Console.ReadLine();
}

}

}
分享到:
评论

相关推荐

    数据结构 C#实现 各种算法 线性表,树,单链表

    ### 数据结构C#实现知识点概览 #### 一、数据结构与C#语言结合的意义 在当前快速发展的信息技术领域中,数据结构与算法是计算机科学的核心组成部分,它们为解决复杂问题提供了理论基础和技术手段。随着.NET平台的...

    C#数据结构--方法及其应用以及在.NET框架中相应的算法

    ### C# 数据结构——方法及其应用以及在 .NET 框架中相应的算法 #### 第1章:数据结构和算法的基础概念及C#基础知识 - **数据结构与算法概述**:介绍数据结构与算法的基本定义及其重要性。数据结构是指一组特定...

    数据结构(C#语言版)_C#_数据结构_

    在这个C#语言版的数据结构教程中,我们将深入探讨C#如何被用来实现经典的数据结构。 首先,我们要理解什么是数据结构。数据结构是存储和组织数据的一种方式,它定义了数据的逻辑结构和物理结构,并规定了在这些结构...

    数据结构 (C#语言版)

    ### 数据结构(C#语言版)知识点总结 #### 第1章 绪论 ##### 1.1 数据结构 **1.1.1 学习数据结构的必要性** 数据结构是计算机科学的一个核心概念,它主要研究如何组织和管理数据,以便能够有效地执行各种操作。...

    数据结构-代码(C#实现)

    本篇将详细探讨在C#中实现的数据结构,包括链表、栈、队列、二叉树、图、二分查找以及排序算法。 首先,链表是线性数据结构的一种,分为单链表、双向链表和循环链表。单链表每个节点仅包含指向下一个节点的指针;...

    数据结构与算法-C#版

    这是C#版的数据结构与算法的代码实现,包括:顺序表,单链表,双链表;顺序栈,链栈;顺序队列,链队列;顺序串;用数组进行特殊矩阵的存储,稀疏矩阵的存储;顺序存储二叉树,链式存储二叉树,哈夫曼树;多重链表...

    数据结构_顺序表_单链表_循环链表C#

    本专题主要探讨了三种基本数据结构:顺序表、单链表和循环链表,并以学生成绩管理为例,展示了它们在实际问题中的应用。下面将详细阐述这三种数据结构及其在C#语言中的实现。 首先,顺序表是一种线性数据结构,它在...

    C#数据结构(顺序表,单链表,顺序表应用,冒泡排序,折半查找)

    C#作为一种面向对象的编程语言,提供了丰富的工具和库来实现各种数据结构和算法。在这个大二实验作业中,我们将关注五个主要主题:顺序表、单链表、顺序表的应用、冒泡排序以及折半查找。 首先,我们来探讨**顺序表...

    数据结构(C#语言版).

    ### 一、数据结构概览 #### 1.1 数据结构 - **学习数据结构的必要性**: - 数据结构是计算机科学的基础之一,它研究如何组织、存储和处理数据。 - 学习数据结构有助于提高解决问题的能力,尤其是在处理大量数据...

    数据结构解析-加深数据了解

    通过阅读"数据结构C#语言版.pdf"这份文档,你将能深入理解这些数据结构的工作原理、优缺点以及在实际问题中的应用。此外,文档可能还会涵盖如何在C#中实现这些数据结构,以及相关的算法实例,帮助你将理论知识转化为...

    《数据结构C#》代码

    《数据结构C#》代码是针对C#编程语言的一个学习资源,主要涵盖了数据结构的基本概念、实现和应用。数据结构是计算机科学中的核心概念,它涉及到如何有效地存储和组织数据,以便于高效地进行访问和操作。C#,作为.NET...

    用C#实现数据结构与算法中单链表的结构

    本主题将详细探讨如何用C#实现单链表的结构,这是一种基本但实用的数据结构。 首先,我们需要理解单链表的概念。单链表是一种线性数据结构,每个元素(或称为节点)包含两部分:数据域和指针域。数据域存储实际的...

    C#单链表图形界面

    在IT领域,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和.NET框架中。...总的来说,这个项目不仅涵盖了数据结构中的单链表知识,还涉及了C#编程和GUI设计,对于学习和提升编程技能是非常有价值的实践。

    C#(数据结构与教程)单链表的实例应用程序

    单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储...

    数据结构与算法(C#)代码

    数据结构与算法是计算机科学的基础,对于任何编程语言来说,理解和掌握它们都是至关重要的,C#也不例外。在C#中实现数据结构和算法,能够帮助开发者编写出更高效、更优化的代码。以下是对这些核心概念的详细阐述。 ...

Global site tag (gtag.js) - Google Analytics