public int Count() { int j = 0; DataRecord output = new DataRecord(); foreach (List <DataRecord> d in Data) { foreach (DataRecord dd in d) { j++; //Debug.WriteLine(dd.work + " " + j); } //Debug.WriteLine(""); } return(j); }
public DataRecord GetDataFromPosition(int i) { int j = 1; DataRecord output = new DataRecord(); foreach (List <DataRecord> d in Data) { foreach (DataRecord dd in d) { if (j == i) { output = dd; goto aa; } j++; } } aa: return(output); }
public string printlist(List <DataRecord> z) { DataRecord last = z.Last(); string aa = ""; aa += "{"; Debug.Write("{"); foreach (DataRecord a in z) { aa += a.work; Debug.Write(a.work); if (!a.work.Equals(last.work)) { Debug.Write(","); aa += ","; } } aa += "}"; Debug.Write("}"); return(aa); }
public void PrintTree(DataRecord DR) { List <DataRecord> firstStack = new List <DataRecord>(); firstStack.Add(DR); List <List <DataRecord> > childListStack = new List <List <DataRecord> >(); childListStack.Add(firstStack); while (childListStack.Count > 0) { List <DataRecord> childStack = childListStack[childListStack.Count - 1]; if (childStack.Count == 0) { childListStack.RemoveAt(childListStack.Count - 1); } else { DR = childStack[0]; childStack.RemoveAt(0); string indent = ""; for (int i = 0; i < childListStack.Count - 1; i++) { indent += (childListStack[i].Count > 0) ? "| " : " "; } string a = indent + "+- " + DR.work + "(" + DR.time.ToString() + ")"; textBox1.AppendText(a); textBox1.AppendText(Environment.NewLine); if (DR.get_After().Count > 0) { childListStack.Add(new List <DataRecord>(DR.get_After())); } } } }
public void Combination(int ct) { List <List <DataRecord> > Resultlist = new List <List <DataRecord> >(); int counts = 0; double count = Math.Pow(2, ListDR.Count); for (int i = 1; i <= count - 1; i++) { int sum = 0; List <DataRecord> result = new List <DataRecord>(); string str = Convert.ToString(i, 2).PadLeft(ListDR.Count, '0'); for (int j = 0; j < str.Length; j++) { if (str[j] == '1') { sum += ListDR[j].time; result.Add(ListDR[j]); } } if (sum <= ct) { Resultlist.Add(result); foreach (DataRecord a in result) { //Debug.Write(a.work + ","); } counts++; //Debug.Write("\t" + sum); //Debug.WriteLine(""); } } //find max member from Combinating int max_member = 0; foreach (List <DataRecord> a in Resultlist) { if (a.Count > max_member) { max_member = a.Count; } } Debug.WriteLine("max member is " + max_member); //group by member of data List <List <List <DataRecord> > > Resultlist2 = new List <List <List <DataRecord> > >(); List <List <DataRecord> > buffer = new List <List <DataRecord> >(); for (int i = 1; i <= max_member; i++) { buffer = new List <List <DataRecord> >(); foreach (List <DataRecord> a in Resultlist) { if (a.Count == i) { buffer.Add(a); Debug.WriteLine("a is " + a.Count); } } Resultlist2.Add(buffer); } //test Debug.WriteLine("buffer is " + buffer.Count); Debug.WriteLine(" Resultlist2 is " + Resultlist2.Count); combine_text = ""; // clear combine_text this.Resultlist = Resultlist2; this.ResultlistEx1 = Resultlist2; foreach (List <List <DataRecord> > aa in ResultlistEx1) { this.LastResult.Add(aa); } foreach (List <List <DataRecord> > aa in LastResult) { foreach (List <DataRecord> ldr in aa) { combine_text += ("{"); Debug.Write("{"); DataRecord last = ldr.Last(); foreach (DataRecord dr in ldr) { Debug.Write(dr.work); combine_text += (dr.work); if (!dr.work.Equals(last.work)) { combine_text += (","); } } Debug.Write("}"); combine_text += ("}"); } Debug.WriteLine(""); combine_text += System.Environment.NewLine; } }
public void set_After(DataRecord after) { this.after.Add(after); }
public void set_Before(DataRecord before) { this.prev.Add(before); }