亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? structures.cs

?? A Generic, Reusable Diff Algorithm in C# 這是一個用C#實現的Diff程序
?? CS
字號:
//#define USE_HASH_TABLE

using System;
using System.Collections;

namespace DifferenceEngine
{
	public interface IDiffList
	{
		int Count();
		IComparable GetByIndex(int index);
	}

	internal enum DiffStatus 
	{
		Matched = 1,
		NoMatch = -1,
		Unknown = -2
			
	}

	internal class DiffState
	{
		private const int BAD_INDEX = -1;
		private int _startIndex;
		private int _length;

		public int StartIndex {get{return _startIndex;}}
		public int EndIndex {get{return ((_startIndex + _length) - 1);}}
		public int Length 
		{
			get
			{
				int len;
				if (_length > 0)
				{
					len = _length;
				}
				else
				{
					if (_length == 0)
					{
						len = 1;
					}
					else
					{
						len = 0;
					}
				}
				return len;
			}
		}
		public DiffStatus Status 
		{
			get
			{
				DiffStatus stat;
				if (_length > 0)
				{
					stat = DiffStatus.Matched; 
				}
				else
				{
					switch (_length)
					{
						case -1:
							stat = DiffStatus.NoMatch;
							break;
						default:
							System.Diagnostics.Debug.Assert(_length == -2,"Invalid status: _length < -2");
							stat = DiffStatus.Unknown;
							break;
					}
				}
				return stat;
			}
		}

		public DiffState()
		{
			SetToUnkown();
		}

		protected void SetToUnkown()
		{
			_startIndex = BAD_INDEX;
			_length = (int)DiffStatus.Unknown;
		}

		public void SetMatch(int start, int length)
		{
			System.Diagnostics.Debug.Assert(length > 0,"Length must be greater than zero");
			System.Diagnostics.Debug.Assert(start >= 0,"Start must be greater than or equal to zero");
			_startIndex = start;
			_length = length;
		}

		public void SetNoMatch()
		{
			_startIndex = BAD_INDEX;
			_length = (int)DiffStatus.NoMatch;
		}


		public bool HasValidLength(int newStart, int newEnd, int maxPossibleDestLength)
		{
			if (_length > 0) //have unlocked match
			{
				if ((maxPossibleDestLength < _length)||
					((_startIndex < newStart)||(EndIndex > newEnd)))
				{
					SetToUnkown();
				}
			}
			return (_length != (int)DiffStatus.Unknown);
		}
	}

	internal class DiffStateList
	{
#if USE_HASH_TABLE
		private Hashtable _table;
#else
		private DiffState[] _array;
#endif
		public DiffStateList(int destCount)
		{
#if USE_HASH_TABLE
			_table = new Hashtable(Math.Max(9,destCount/10));
#else
			_array = new DiffState[destCount];
#endif
		}

		public DiffState GetByIndex(int index)
		{
#if USE_HASH_TABLE
			DiffState retval = (DiffState)_table[index];
			if (retval == null)
			{
				retval = new DiffState();
				_table.Add(index,retval);
			}
#else
			DiffState retval = _array[index];
			if (retval == null)
			{
				retval = new DiffState();
				_array[index] = retval;
			}
#endif
			return retval;
		}
	}


	public enum DiffResultSpanStatus
	{
		NoChange,
		Replace,
		DeleteSource,
		AddDestination
	}

	public class DiffResultSpan : IComparable
	{
		private const int BAD_INDEX = -1;
		private int _destIndex;
		private int _sourceIndex;
		private int _length;
		private DiffResultSpanStatus _status;

		public int DestIndex {get{return _destIndex;}}
		public int SourceIndex {get{return _sourceIndex;}}
		public int Length {get{return _length;}}
		public DiffResultSpanStatus Status {get{return _status;}}
		
		protected DiffResultSpan(
			DiffResultSpanStatus status,
			int destIndex,
			int sourceIndex,
			int length)
		{
			_status = status;
			_destIndex = destIndex;
			_sourceIndex = sourceIndex;
			_length = length;
		}

		public static DiffResultSpan CreateNoChange(int destIndex, int sourceIndex, int length)
		{
			return new DiffResultSpan(DiffResultSpanStatus.NoChange,destIndex,sourceIndex,length); 
		}

		public static DiffResultSpan CreateReplace(int destIndex, int sourceIndex, int length)
		{
			return new DiffResultSpan(DiffResultSpanStatus.Replace,destIndex,sourceIndex,length); 
		}

		public static DiffResultSpan CreateDeleteSource(int sourceIndex, int length)
		{
			return new DiffResultSpan(DiffResultSpanStatus.DeleteSource,BAD_INDEX,sourceIndex,length); 
		}

		public static DiffResultSpan CreateAddDestination(int destIndex, int length)
		{
			return new DiffResultSpan(DiffResultSpanStatus.AddDestination,destIndex,BAD_INDEX,length); 
		}

		public void AddLength(int i)
		{
			_length += i;
		}

		public override string ToString()
		{
			return string.Format("{0} (Dest: {1},Source: {2}) {3}",
				_status.ToString(),
				_destIndex.ToString(),
				_sourceIndex.ToString(),
				_length.ToString());
		}
		#region IComparable Members

		public int CompareTo(object obj)
		{
			return _destIndex.CompareTo(((DiffResultSpan)obj)._destIndex);
		}

		#endregion
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av不卡在线观看| 国产成人综合网站| 国内精品国产成人国产三级粉色 | 欧美白人最猛性xxxxx69交| 国产欧美一区二区三区在线看蜜臀 | 天天综合色天天综合色h| 国产成人综合网| 91精品国产91久久久久久一区二区| 久久久国产精品不卡| 日韩精品成人一区二区三区| 国产成人精品三级| 欧美一区二区日韩| 亚洲国产日韩在线一区模特| 国产高清精品久久久久| 91精品福利在线一区二区三区 | 欧美zozozo| 亚洲国产日韩在线一区模特| 91亚洲国产成人精品一区二三| 日韩一区二区精品| 日韩高清电影一区| 欧美精品vⅰdeose4hd| 一区二区三区在线视频播放| 成人国产精品免费观看视频| 久久综合av免费| 精品一区二区免费在线观看| 欧美精品久久久久久久多人混战 | 99久久久久久99| 亚洲精品在线观看网站| 日本不卡高清视频| 欧美日韩精品欧美日韩精品一| 一区二区三区在线免费| 色综合久久综合| 亚洲精品欧美激情| 在线中文字幕一区二区| 亚洲欧美成人一区二区三区| 91丝袜国产在线播放| 亚洲视频一区二区免费在线观看 | 在线观看一区不卡| 亚洲人妖av一区二区| 99久久精品99国产精品| 中文字幕亚洲一区二区av在线| 国产91精品一区二区麻豆网站| 亚洲国产精品精华液2区45| 国产精品18久久久久久vr| 国产拍欧美日韩视频二区| 成人精品国产免费网站| 亚洲欧美综合另类在线卡通| 在线精品亚洲一区二区不卡| 亚洲午夜精品久久久久久久久| 欧美午夜精品理论片a级按摩| 午夜精品一区二区三区三上悠亚 | 婷婷综合在线观看| 欧美电影免费提供在线观看| 国精产品一区一区三区mba桃花 | 日本欧美久久久久免费播放网| 在线电影一区二区三区| 捆绑调教美女网站视频一区| 久久久久综合网| 97精品视频在线观看自产线路二| 一区二区三区在线播放| 91精品国产综合久久香蕉麻豆| 精品亚洲免费视频| 亚洲天堂av老司机| 欧美猛男超大videosgay| 久久99九九99精品| 国产精品成人免费| 在线成人av影院| 国产成人自拍网| 一区二区三区精品在线| 精品国产区一区| 日本韩国精品一区二区在线观看| 日本亚洲欧美天堂免费| 国产精品蜜臀在线观看| 91精品麻豆日日躁夜夜躁| 成人精品亚洲人成在线| 视频一区二区欧美| 中文字幕不卡在线| 欧美高清视频一二三区| 成人午夜在线视频| 奇米四色…亚洲| 最好看的中文字幕久久| 精品久久久久久久一区二区蜜臀| 97se亚洲国产综合自在线不卡| 免费欧美在线视频| 亚洲欧美激情在线| 亚洲精品一区二区三区四区高清| 91麻豆6部合集magnet| 国产一区二区三区电影在线观看 | 亚洲国产精品高清| 欧美一区二区黄| 在线观看av一区二区| 成人一级视频在线观看| 麻豆精品一区二区| 亚洲高清免费观看高清完整版在线观看| 久久亚洲综合色一区二区三区| 欧美日韩视频第一区| 不卡电影一区二区三区| 激情综合五月天| 奇米在线7777在线精品| 亚洲成av人**亚洲成av**| 亚洲欧美日韩国产综合在线| 国产女人18水真多18精品一级做| 日韩视频免费观看高清完整版在线观看 | 欧美精品一卡二卡| 欧美日韩视频不卡| 欧美亚洲国产怡红院影院| 91麻豆国产福利精品| 91色porny在线视频| 成人av网址在线| 国产成人午夜精品影院观看视频 | 一区二区视频在线看| 成人欧美一区二区三区小说| 国产网站一区二区| 国产偷国产偷亚洲高清人白洁| 精品国产网站在线观看| 精品美女一区二区| 久久亚洲综合色| 国产网站一区二区三区| 欧美国产日韩精品免费观看| 国产欧美精品一区二区色综合 | 国产福利不卡视频| 国产成a人亚洲| 大陆成人av片| 99国产精品久久久久久久久久久| 91亚洲男人天堂| 色香蕉成人二区免费| 色综合天天综合网天天狠天天| 99久久er热在这里只有精品15| 99精品久久99久久久久| 99re亚洲国产精品| 欧美在线视频日韩| 91精品一区二区三区在线观看| 精品国产三级a在线观看| 久久婷婷综合激情| 国产精品国产三级国产三级人妇| 亚洲日穴在线视频| 亚洲一二三区在线观看| 蜜臀久久久久久久| 欧美日本一区二区| 91精品久久久久久久99蜜桃| 精品国产乱码久久久久久免费| 欧美经典三级视频一区二区三区| 国产精品久久福利| 午夜欧美视频在线观看| 日本不卡视频在线观看| 懂色av一区二区夜夜嗨| 欧美性猛交xxxxxxxx| 日韩欧美中文字幕公布| 中文字幕在线一区二区三区| 一区二区三区免费| 久久99国内精品| 91一区一区三区| 日韩亚洲欧美高清| 中文字幕乱码久久午夜不卡| 亚洲成人先锋电影| 国产成人免费视| 欧美日韩第一区日日骚| 国产午夜精品一区二区三区嫩草| 洋洋成人永久网站入口| 精品一区二区国语对白| 在线观看日韩av先锋影音电影院| 精品久久一二三区| 亚洲国产综合在线| 粉嫩13p一区二区三区| 91精品国产欧美一区二区18| 中文字幕在线不卡一区二区三区| 日本免费新一区视频| 色综合久久66| 国产日韩一级二级三级| 日韩制服丝袜av| 在线精品观看国产| 国产精品亲子伦对白| 免费成人在线观看| 精品视频免费看| 亚洲欧美激情在线| 成人午夜在线免费| 久久只精品国产| 美女视频第一区二区三区免费观看网站| 91首页免费视频| 国产精品视频在线看| 精品一区二区久久久| 911国产精品| 亚洲国产欧美在线| 色婷婷综合久久久中文字幕| 欧美韩日一区二区三区| 精品亚洲成a人| 日韩精品影音先锋| 日韩av中文在线观看| 欧美日韩一区在线观看| 一区二区三区成人在线视频| www.成人在线| 国产精品午夜电影| 成人在线视频首页| 国产女同互慰高潮91漫画| 国产一区二区三区香蕉| 精品国产免费视频| 国产美女一区二区三区| 久久久综合激的五月天| 韩国三级中文字幕hd久久精品| 欧美电影精品一区二区|