c# 数据结构书中一个疑惑

问题描述

publicvoidReversSeqList(SeqList<int>L){inttmp=0;intlen=L.GetLength();for(inti=0;i<=len/2;++i){tmp=L[i];L[i]=L[len-i];L[len-i]=tmp;}问题是len值取得是数组L的长度,倒置方法中L[i]=L[len-i],我觉得应该是len-1-i请教下各位,解惑

解决方案

解决方案二:
publicclassSeqList<T>:IListDS<T>{privateintmaxsize;//顺序表的容量privateT[]data;//数组,用于存储顺序表中的数据元素privateintlast;//指示顺序表最后一个元素的位置//索引器publicTthis[intindex]{get{returndata[index];}set{data[index]=value;}}//最后一个数据元素位置属性publicintLast{get{returnlast;}}//容量属性publicintMaxsize{get{returnmaxsize;}set{maxsize=value;}}//构造器publicSeqList(intsize){data=newT[size];maxsize=size;last=-1;}//求顺序表的长度publicintGetLength(){returnlast+1;}//清空顺序表publicvoidClear(){last=-1;}//判断顺序表是否为空publicboolIsEmpty(){if(last==-1){returntrue;}else{returnfalse;}}false;}}//在顺序表的末尾添加新元素publicvoidAppend(Titem){if(IsFull()){Console.WriteLine("Listisfull");return;}data[++last]=item;}//在顺序表的第i个数据元素的位置插入一个数据元素publicvoidInsert(Titem,inti){if(IsFull()){Console.WriteLine("Listisfull");return;}if(i<1||i>last+2){Console.WriteLine("Positioniserror!");return;}if(i==last+2){data[last+1]=item;}else{for(intj=last;j>=i-1;--j){data[j+1]=data[j];}data[i-1]=item;}++last;}//删除顺序表的第i个数据元素publicTDelete(inti){Ttmp=default(T);if(IsEmpty()){Console.WriteLine("Listisempty");returntmp;}if(i<1||i>last+1){Console.WriteLine("Positioniserror!");returntmp;}if(i==last+1){tmp=data[last--];}else{tmp=data[i-1];for(intj=i;j<=last;++j){data[j]=data[j+1];}}--last;returntmp;}//获得顺序表的第i个数据元素publicTGetElem(inti){if(IsEmpty()||(i<1)||(i>last+1)){Console.WriteLine("ListisemptyorPositioniserror!");returndefault(T);}returndata[i-1];}//在顺序表中查找值为value的数据元素publicintLocate(Tvalue){if(IsEmpty()){Console.WriteLine("ListisEmpty!");return-1;}inti=0;for(i=0;i<=last;++i){if(value.Equals(data[i])){break;}}if(i>last){return-1;}returni;}
解决方案三:
看到++i没?
解决方案四:
引用2楼yuwenge的回复:

看到++i没?

如果是这样的话L[0],不就漏了吗?
解决方案五:
是++i,不是i++所以其实i是从1开始循环的
解决方案六:
还有L[1]=L[len-1]len-1是数组最后的元素1是数组的第二个元素,这样也是错的,应该是第一个与最后一个对换。
解决方案七:
空想没用你new个数组,里面放上1-9的数字然后执行一下代码,看变成什么了,就知道它到底有没有问题了
解决方案八:
书上写的可能并不全是对的也有些是书上写对了,但是你理解错了这都没关系写个代码,执行一下,就知道到底谁对了反正编译器不骗人
解决方案九:
我自己调试了下,++i,在第一次循环的时候,i不是自增,第二次循环时才是自增的。
解决方案十:
调试的时候我按书上len-i试了下,超过数组的长度,我认为应该是书上出了问题。

时间: 2024-09-11 13:18:11

c# 数据结构书中一个疑惑的相关文章

Advanced Rails Recipes 书中的一个问题 高手进

问题描述 Advanced Rails Recipes 书中21页,search那一段访问 http://localhost:3000/events/search?q=rubyconf错误提示------------------------------------------------------------------------------------------------ActiveRecord::RecordNotFound in EventsController#show Coul

异常-java核心技术中一个关于数组的例子不理解,请教大家

问题描述 java核心技术中一个关于数组的例子不理解,请教大家 Person是Employer的父类,Employer有个新方法setBonus,代码如下 Employer[] emprs ={new Employer("张三"),new Employer("李四")}; Person[] ps =emprs; ps[0] = new Person("小明");//运行时该行报错ArrayStoreException emprs[0].setBo

printf-C Primer plus 书中的问题?

问题描述 C Primer plus 书中的问题? printf(""asdadasd"");//因为我让在引号括起来的字符断行了 所以程序就会报错 printf(""asdada sd"");//而加了反斜线符号就能运行了书上讲反斜线符号+回车符结束了第一行..请问这是怎么一回事.. 问题2: #include<stdio.h>#include<stdlib.h>int main(){ printf(

C#新手,看到书上一个 关于foreach的例子,无法运行

问题描述 C#新手,看到书上一个 关于foreach的例子,无法运行 using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace foreachApp{ class Program { public static void Main() { IDictionary environment = Environment.GetEnvironmentVariables(); Co

javascript-js 回调函数的一个疑惑

问题描述 js 回调函数的一个疑惑 $(document).ready(function(){ for(var i = 0 ; i < 5; i++){ $("#b"+i).bind("click",function(){ alert(i); }); } }); This is a paragraph. 请点击这里0请点击这里1请点击这里2请点击这里3请点击这里4 代码如上,很简单的一个循环.但是为什么这5个button点击后都是alert出5呢 为什么不是0

c语言-不加const也可以,为什么在书中作者却要加上const

问题描述 不加const也可以,为什么在书中作者却要加上const 函数功能:在一个字符串中进行搜索,查找所有在一个指定字符集中出现的字符 #include<stdio.h> char* find_char(char *source,char *chars) { char *temp; while(source!=NULL&&chars!=NULL){ for(;*source!='';source++){ for(temp=chars;*temp!='';temp++){ i

java-对一个list中一个类的困扰

问题描述 对一个list中一个类的困扰 我参考的这个文档学习的livewallpaper.这里我有一些地方不太明白. 教程中的示例代码中有个MyPoint类 public class MyPoint { String text; private int x; private int y; public MyPoint(String text, int x, int y) { this.text = text; this.x = x; this.y = y; } } 然后又创建了一个MyWallp

java多线程问题,java 编程思想书中的例子

问题描述 java多线程问题,java 编程思想书中的例子 在看java编程思想书中的多线程一节,书中对wait,notify,notifyall举了一个例子,模拟给汽车涂蜡和抛光的过程, 因为抛光任务在涂蜡之前是不能尽兴的,反之,涂蜡任务在涂另外一层蜡之前,必须要等抛光任务结束.代码如下: 显示一个汽车类: class Car{ private boolean wanOn=false; public synchronized void waxed(){ waxOn=true; notifyAl

c语言-求帮备注解释 C 代码,编译原理 虎书中的

问题描述 求帮备注解释 C 代码,编译原理 虎书中的 虎书绪论里的联系,太凶...大学生表示看着很困难 求给定语句中任意子表达式内的print语句的参数个数,对一个直线式程序语言写的程序进行"解释". 三个头文件 (1)prog1.h A_stm prog(void); (2)slp.h typedef struct A_stm_ *A_stm; typedef struct A_exp_ *A_exp; typedef struct A_expList_ *A_expList; ty