1、C#语言和数据结构

1.1 C#程序的基本结构和基本语法要点

Here, you’ll take a closer look at the console application example and break down the structure a bit. Here’s the code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      // Output text to the screen.
      Console.WriteLine("The first app in Beginning C# Programming!");
      Console.ReadKey();
    }
  }
}

所有的C#程序后缀为.cs

编辑时,为使用代码大纲(代码折叠)功能,可如下:

#region Using directives

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

#endregion

以#开头的内容可视为预指令,他不是C#的关键字。编辑时代码可折叠为1行。

区分大小写。

语句中的空格将不予考虑。

分号“;”为一条语句的结尾。一条语句可书写在2行或多行。

声明语句后面不要分号“;”

注释的方式有三种:

(1)/*                         */

特点:以“/*”开始,可书写于多行,只直到有“*/”结束。

(2)//

特点:以“//”开头,只能书写于一行。可为单独的一行,也可以放在一条语句的分号之后。

(3)///

与//相同。不同的是该方法可由VS提取内容。

占位符标签

程序中的占位符标签类似于汇编语言中的程序指针地址。下图中第2行和第1行为一个标签,因其间无分号相隔。

<code line 1, statement 1>;
<code line 2, statement 2>
    <code line 3, statement 2>;

1.2 语句

1.2.1 跳转语句

?goto 语句

The goto statement is used as follows:

goto <labelName>;

Labels are defi ned as follows:
<labelName>:
For example, consider the following:

int myInteger = 5;
goto myLabel;
myInteger += 10;
myLabel:
Console.WriteLine("myInteger = {0}", myInteger);

1.2.2 分支语句

? The ternary operator  三元运算符
? The if statement     if语句
? The switch statement   switch语句

1.2.2.1 三元运算符

常用于简单赋值,较复杂的代码宜用if语句。

The syntax is asfollows:

<test> ? <resultIfTrue>: <resultIfFalse>

Here,

<test> is evaluated to obtain a Boolean value, and the result of the operator is either <resultIfTrue> or <resultIfFalse> based on this value.
You might use this as follows to test the value of an int variable called myInteger:

string resultString = (myInteger < 10) ? "Less than 10"
: "Greater than or equal to 10";

如果myInteger<10,则:resultString = "Less than 10"

如果myInteger≥10,则:resultString = "Greater than or equal to 10"

1.2.2.2  if语句

The syntax is asfollows:

if (<test>)
<code executed if <test> is true>;
if (<test>)
<code executed if <test> is true>;
else
<code executed if <test> is false>;
if (<test>)
{
<code executed if <test> is true>;
}
else
{
<code executed if <test> is false>;
}

举例:

static void Main(string[] args)
{
  string comparison;
  Console.WriteLine("Enter a number:");
  double var1 = Convert.ToDouble(Console.ReadLine());
  Console.WriteLine("Enter another number:");
  double var2 = Convert.ToDouble(Console.ReadLine());
  if (var1 < var2)
    comparison = "less than";
  else
  {
    if (var1 == var2)
      comparison = "equal to";
    else
      comparison = "greater than";
  }
  Console.WriteLine("The first number is {0} the second number.",comparison);
  Console.ReadKey();
}

举例:判断更多的条件:

if (var1 == 1)
{
// Do something.
}
else
{
if (var1 == 2)
{
// Do something else.
}
else
{
if (var1 == 3 || var1 == 4)
{
// Do something else.
}
else
{
// Do something else.
}
}
}

1.2.2.3  switch语句

标准语法:The basic structure of a switch statement is as follows:

switch (<testVar>)
{
  case <comparisonVal1>:
    <code to execute if <testVar> == <comparisonVal1> >
    break;
  case <comparisonVal2>:
    <code to execute if <testVar> == <comparisonVal2> >
    break;
  ...
  case <comparisonValN>:
    <code to execute if <testVar> == <comparisonValN> >
    break;
  default:
    <code to execute if <testVar> != comparisonVals>
    break;
}

使用技巧:

{
case <comparisonVal1>:
  <code to execute if <testVar> == <comparisonVal1> >
  goto case <comparisonVal2>;
case <comparisonVal2>:
  <code to execute if <testVar> == <comparisonVal2> >
  break;
...
switch (<testVar>)
{
  case <comparisonVal1>:
  case <comparisonVal2>:
    <code to execute if <testVar> == <comparisonVal1> or
    <testVar> == <comparisonVal2> >
    break;
  ...
switch (myInteger)
{
  case 1:
    <code to execute if myInteger == 1>
    break;
  case −1:
    <code to execute if myInteger == −1>
    break;
  default:
    <code to execute if myInteger != comparisons>
    break;
}

1.2.3 循环语句

? do循环

? while循环

? for循环

循环的中断

无限循环

1.2.3.1 do循环

基本语法:

do
{
  <code to be looped>
} while (<Test>);

举例:

int i = 1;
do
{
  Console.WriteLine("{0}", i++);
} while (i <= 10);

1.2.3.2 while循环

语法:

while (<Test>)
{
  <code to be looped>
}

举例

int i = 1;
while (i <= 10)
{
  Console.WriteLine("{0}", i++);
}

1.2.3.3 for循环

语法:

for (<initialization>; <condition>; <operation>)
{
  <code to loop>
}

举例:

int i;
for (i = 1; i <= 10; ++i)
{
Console.WriteLine("{0}", i);
}

1.4

时间: 2024-11-05 12:25:56

1、C#语言和数据结构的相关文章

约瑟夫环(N个人围桌,C语言,数据结构)

约瑟夫环问题(C语言.数据结构版) 一.问题描述 N个人围城一桌(首位相连),约定从1报数,报到数为k的人出局,然后下一位又从1开始报,以此类推.最后留下的人获胜.(有很多类似问题,如猴子选代王等等,解法都一样) 二.思路分析 (1)可将人的顺序简单编号,从1到N: (2)构造一个循环链表,可以解决首位相连的问题,同时如果将人的编号改为人名或者其他比较方便 (3)将人的编号插入到结构体的Data域: (4)遍历人的编号,输出参与的人的编号: (5)开始报数,从头报数,报到k的人出局(删除次结点)

C语言、数据结构笔记集合

链表中的“p->next” p->next到底是指p的下一个节点还是p的指针域呢?p是一个指针,那么p->next也应该是一个指针,即p->next应该是一个地址,因此p->next其实是p指向的节点的指针域(next域),所以p->next还是属于当前节点的,只不过它是下一个节点的地址罢了.所以如果函数返回“p->next”,那么函数的类型应为指针函数. 如何让VS2013进行C编程的时候使用基本库函数不会得到警告 把VS项目创建中的安全周期检查关闭就可以任意使

C语言版数据结构算法

C语言版数据结构算法 C语言数据结构具体算法 https://pan.baidu.com/s/19oLoEVqV1I4UxW7D7SlwnQ C语言数据结构演示软件 https://pan.baidu.com/s/1u8YW897MjJkoOfsbHuadFQ 在上一篇的FIFO中就是基于数据结构思维中的队列实现的,而基本的数据结构内容还有 算法效率分析.线性表.栈和队列.串.数组和广义表.树和二叉树.图.查表.排序.动态存储管理 上面两个链接就是<数据结构(C语言版)>严蔚敏教授严奶奶的书籍

C语言实现数据结构之栈的详解

在函数调用的过程中,需要的就是先进后出的特点,因此,栈就出现了. 栈是一种数据结构,是计算机怎么处理程序运行的一种方式.具有先进后出的特点,下面看的就是这些抽象的数据结构怎么用C语言代码来实现,栈能实现,那么其他的数据结构也就自然可以用C语言实现的了,如:队列. C语言实现栈的代码,可以有数组形式,链表形式,下面讲解的是数组形式来实现. 静态数组因为有个大小,而且它在内存的栈区,默认为1M,所以静态数组不会分配的很大,因此用数组来实现,有个栈的容量的问题,自然就会带出"栈顶"和&quo

用python语言讲解数据结构与算法总述(一)

关于数据结构与算法讲解的书籍很多,但是用python语言去实现的不是很多,最近有幸看到一本这样的书籍,由Brad Miller and David Ranum编写的<Problem Solving with Algorithms and Data Structures Using Python>,地址为:http://interactivepython.org/runestone/static/pythonds/index.html是英文的,写的不错,里面代码的实现也很详细,很多有趣的例子,于

R语言中数据结构

R语言还是有点古老感觉,数据结构没有Python中那么好用,下面简单总结一下R语言中常用的几个数据结构. 向量: R中的向量可以理解为一维的数组,每个元素的mode必须相同,可以用c(x:y)进行创建,如x <- c(1:9). 矩阵: R中的矩阵可以理解为二维数组,每一个元素必须要有相同的mode,使用matrix进行创建,matrix的形式为: matrix(vector, nrow=number_of_rows, ncol=number_of_columns, byrow=logical_

c语言,数据结构,链表的一些操作总结

下面是自己的一些学习操作以及总结,能用我会很开心,有不足之处,欢迎大家提出宝贵的意见! c语言链表是一种基本的数据结构,与顺序表一样属于线性表,但是顺序表在内存中的存储单元是连续的,这样就对内存的要求比较高,而链表就不一样了,它能够很好的解决这些缺点,唯一不足就是访问元素的效率不如顺序表来的那么高,但也只是相对而言!而且,链表对于后面的二叉树,图等意义重大,他们之间的联系都是非常紧密的,下面我来给出链表的一些操作. 1.链表的存储结构由数据和指针组成一个节点,每一个指针指向下一个节点,这样环环相

R语言基础 - 数据结构

1. 对象的五种基本类型(classes of objects) - 字符(character) - 数值(numeric:real numbers) - 整数(integer) - 复数(complex):1+2i - 逻辑(logical:True / False)   2. 属性(attribute) - 名称(name) - 维度(dimensoins:matrix,array) - 类型(class) - 长度(length) 3. 数据结构 - 向量(vector):只能包含同一类型

【c语言】数据结构(约瑟夫生者死者游戏的问题)

约瑟夫生者死者游戏:30个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分:因此船长告诉大家,只有将全船一半的旅客投入海中,其余人才能幸免遇难.无奈,大家只得同意这种办法,并议定30个人围成一圈,由第一个人开始,依次报数,数到第9个人,就把他投入大海中,然后从他的下一个人开始从1数起,数到第9个人,再将她投入大海,如此循环,直到剩下15个人乘客为止.问哪些位置是将被扔到大海的位置. 解法有许多种,可以用数组,应为涉及到删除操作,数组(顺序线性表)比较麻烦,但不必要删除,只需要给跳船的人(元素

【c语言】数据结构(二叉树操作)

  1 #include<stdio.h> 2 #include<stdlib.h> 3 typedef struct BITree{ 4 char data; 5 BITree *lchild; 6 BITree *rchild; 7 }BITree,*BiTree; 8 typedef struct Queue{ 9 BiTree data; 10 Queue *next; 11 }Queue; 12 BITree *pop(Queue *p) 13 { 14 Queue *q