欢乐邦

欢迎你的到来!

 

2009年4月15日

数据结构的题

 

一、多项式的线性表表示

An(x)=anxn+an-1xn-1+...+a1x+a0 ,用线性表表示为:     

A=(an,an-1,...,a1,a0)

若多项式的阶次很高,而系数ai不为零的很少,则这

种表示浪费空间。

可写为:

A(x)=amxem+am-1xem-1+...+a1xe1+a0xe0,用线性表表示为:

A=((am,em),(am-1,em-1),...,(a1,e1),(a0,e0))

二、多项式相加的方法

A+B=>C

1、线性表C置空

2、各取线性表AB的第一个元素作为当前处理的元素

3、比较当前处理的元素的指数值,相等,系数相加若不为零追加到线性表C,各取线性表AB的下一个元素作为当前处理的元素;若指数不相等,则把大的元素追加到线性表C,取该元素所在线性表的下一个元素作为当前处理的元素。

4、重复步骤3直到其中一个线性表处理完毕,再把另一个线性表的剩余元素追加到线性表C

 附注:要求用泛型,所有的算法都要自己写

posted @ 2009-04-15 22:23 lebang 阅读(15) 评论(0) 编辑

2009年3月19日

一道线性表的题

 

n       有顺序表AB,其元素均按从小到大的升序排列,编写一个算法将它们合并成一个顺序表C,要求C的元素也是从小到大的升序排列。

 

          Random q = new Random();

            int[] Aa = new int [3];
            int[] Ba = new int[3];
            int[] Ca = new int[Aa.Length + Ba.Length];

            for (int i = 0; i < Aa.Length; i++)
            {
                Aa[i] = q.Next(1, 10);

            }
            for (int i = 0; i < Ba.Length; i++)
            {
                Ba[i] = q.Next();
            }

            Array.Sort(Aa);
        //    public void Sort()
        //    {
        //        int smallest;
        //        for (int i=0;i<Aa.Length-1;i++)
        //            smallest =i;
        //        for (int index=i+1;index <Aa.Length;index ++)
        //            if(Aa[i ]<Aa[smallest ])
        //                smallest =i ;
        //    }
        //Aa.Sort();
            Console.WriteLine("随机生成的数组Aa是:");
            P(Aa);
            Array.Sort(Ba);
            Console.WriteLine("随机生成的数组Ba是:");
            P(Ba);

            for (int i = 0; i < Aa.Length; i++)
            {
                Ca[i] = Aa[i];
            }
            int x = Aa.Length;
            for (int i = 0; i < Ba.Length; i++)
            {
                Ca[x] = Ba[i];
                x++;
            }
            Console.WriteLine("合并后的数组Ca是:");
            Array.Sort(Ca);
            P(Ca);
        }


        static void P<E>(E[] a)
        {
            foreach (E element in a)
                Console.Write(element + "              ");

            Console.WriteLine("\n");

在控制台应用程序中,可以用以上很简单的几十行代码 ,来完成这个题目,

但是,如果是要求用泛型呢?排序的算法要你自己写?怎样在Windows应用程序中实现呢?

 

posted @ 2009-03-19 21:18 lebang 阅读(72) 评论(0) 编辑

  

导航

统计

公告