OSDN Git Service

微修正
authorkomutan <t_komuta@nifty.com>
Tue, 29 Jul 2014 14:52:32 +0000 (23:52 +0900)
committerkomutan <t_komuta@nifty.com>
Tue, 29 Jul 2014 14:52:32 +0000 (23:52 +0900)
src/LibNMeCab/Core/PriorityQueue.cs
src/LibNMeCabMMF/LibNMeCabMMF.csproj
src/NMeCab.sln

index ab2772a..0d6604c 100644 (file)
@@ -1,83 +1,82 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace NMeCab.Core\r
-{\r
-    public class PriorityQueue<T>\r
-        where T : IComparable<T>\r
-    {\r
-        private readonly List<T> list = new List<T>();\r
-\r
-        public int Count\r
-        {\r
-            get { return this.list.Count; }\r
-        }\r
-\r
-        public void Clear()\r
-        {\r
-            this.list.Clear();\r
-        }\r
-\r
-        public void Push(T item)\r
-        {\r
-            int currentPos = this.list.Count;\r
-            this.list.Add(default(T));\r
-\r
-            while (currentPos != 0)\r
-            {\r
-                int parentPos = (currentPos - 1) / 2;\r
-                T parent = this.list[parentPos];\r
-\r
-                if (parent.CompareTo(item) <= 0) break;\r
-\r
-                this.list[currentPos] = parent;\r
-                currentPos = parentPos;\r
-            }\r
-            this.list[currentPos] = item;\r
-        }\r
-\r
-        public T Pop()\r
-        {\r
-            if (this.Count == 0) throw new InvalidOperationException("Empty");\r
-\r
-            T ret = this.list[0];\r
-            this.DeleteRoot();\r
-            return ret;\r
-        }\r
-\r
-        private void DeleteRoot()\r
-        {\r
-            int tailPos = this.list.Count - 1;\r
-            T current = this.list[tailPos]; // final\r
-            this.list.RemoveAt(tailPos);\r
-            if (tailPos == 0) return; // empty\r
-            tailPos--;\r
-\r
-            int currentPos = 0;\r
-            while (true)\r
-            {\r
-                int childPos = currentPos * 2 + 1; // left child\r
-                if (childPos > tailPos) break;\r
-                T child = this.list[childPos];\r
-\r
-                int wrkPos = childPos + 1; // right child\r
-                if (wrkPos <= tailPos)\r
-                {\r
-                    T wrk = this.list[wrkPos];\r
-                    if (child.CompareTo(wrk) > 0)\r
-                    {\r
-                        childPos = wrkPos;\r
-                        child = wrk;\r
-                    }\r
-                }\r
-\r
-                if (current.CompareTo(child) < 0) break;\r
-\r
-                this.list[currentPos] = child;\r
-                currentPos = childPos;\r
-            }\r
-            this.list[currentPos] = current;\r
-        }\r
-    }\r
-}\r
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NMeCab.Core
+{
+    public class PriorityQueue<T>
+        where T : IComparable<T>
+    {
+        private readonly List<T> list = new List<T>();
+
+        public int Count
+        {
+            get { return this.list.Count; }
+        }
+
+        public void Clear()
+        {
+            this.list.Clear();
+        }
+
+        public void Push(T item)
+        {
+            if (item == null) throw new ArgumentNullException("item");
+
+            int currentPos = this.list.Count;
+            this.list.Add(default(T));
+
+            while (currentPos != 0)
+            {
+                int parentPos = (currentPos - 1) / 2;
+                T parent = this.list[parentPos];
+
+                if (parent.CompareTo(item) <= 0) break;
+
+                this.list[currentPos] = parent;
+                currentPos = parentPos;
+            }
+            this.list[currentPos] = item;
+        }
+
+        public T Pop()
+        {
+            if (this.Count == 0) throw new InvalidOperationException("Empty");
+
+            T ret = this.list[0];
+
+            int tailPos = this.list.Count - 1;
+            T current = this.list[tailPos]; // final
+            this.list.RemoveAt(tailPos);
+            if (tailPos == 0) return ret; // empty
+            tailPos--;
+
+            int currentPos = 0;
+            while (true)
+            {
+                int childPos = currentPos * 2 + 1; // left child
+                if (childPos > tailPos) break;
+                T child = this.list[childPos];
+
+                int wrkPos = childPos + 1; // right child
+                if (wrkPos <= tailPos)
+                {
+                    T wrk = this.list[wrkPos];
+                    if (child.CompareTo(wrk) > 0)
+                    {
+                        childPos = wrkPos;
+                        child = wrk;
+                    }
+                }
+
+                if (current.CompareTo(child) < 0) break;
+
+                this.list[currentPos] = child;
+                currentPos = childPos;
+            }
+            this.list[currentPos] = current;
+
+            return ret;
+        }
+    }
+}
index b25cf0a..548e73a 100644 (file)
     <Compile Include="..\LibNMeCab\Settings.cs">
       <Link>Settings.cs</Link>
     </Compile>
+    <Compile Include="Extension\MeCabNodeExtension.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
index 414e3db..5fe6240 100644 (file)
@@ -1,6 +1,8 @@
 
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Express 2013 for Windows Desktop
+VisualStudioVersion = 12.0.30110.0
+MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibNMeCab", "LibNMeCab\LibNMeCab.csproj", "{3EE156E1-FEDE-4EC5-B64A-3287EC3AB2E3}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsFormsSample", "WindowsFormsSample\WindowsFormsSample.csproj", "{BAB9F854-1C9A-4BF6-83C0-DE3F516547E1}"
@@ -11,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibNMeCabMMF", "LibNMeCabMM
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PerformanceTestMMF", "PerformanceTestMMF\PerformanceTestMMF.csproj", "{7553B430-D001-419D-B137-3A87FC1DE3C3}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibNMeCabTest", "LibNMeCabTest\LibNMeCabTest.csproj", "{59B69A5D-B54E-4659-9CD6-502FCD7B0881}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
@@ -71,6 +75,16 @@ Global
                {7553B430-D001-419D-B137-3A87FC1DE3C3}.Release|Mixed Platforms.Build.0 = Release|x86
                {7553B430-D001-419D-B137-3A87FC1DE3C3}.Release|x86.ActiveCfg = Release|x86
                {7553B430-D001-419D-B137-3A87FC1DE3C3}.Release|x86.Build.0 = Release|x86
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Release|Any CPU.Build.0 = Release|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+               {59B69A5D-B54E-4659-9CD6-502FCD7B0881}.Release|x86.ActiveCfg = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE