網頁

2008年11月13日 星期四

data structure 期中考乙

data structure 期中考乙

54 則留言:

  1. 1. gcd(55,121)=11
    5 55 121 2
    55 110
    0 115
    11

    5. (1)sizeof(x)=4+30+4=38→40
    (2)輸出noname
    50

    7. (1)stuct Node
    int coef;
    int exp;
    struct Node*next;

    8. (2) i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL
    (3) 5
    3
    2
    1

    9. (1)插入中間節點:
    newnode→next=ptr→next;
    ptr→next=newnode;
    (2)刪除中間節點
    while(current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  2. 1.int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }
    算式:
    5│55│121│2
    │55│110│
    ├─┼──┤
    │ 0│ 11│

    5.(1)
    4+30+4=38→40
    (2)
    noname
    50

    7.(1)
    sturuct Node{
    int coef;
    int exp;
    sturuct Node*next;
    }

    8.(1)
    struct Node{
    int date;
    struct Node*next;
    }
    (2)
    First→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1

    9.刪除中間節點
    while(current→next!=ptr)
    current=current→next;
    cuttent→next=ptr→next;

    回覆刪除
  3. 1.
    int gcd ( int x , int y )
    {
    int r = x % y ;
    if ( r = = 0 )
    return y ;
    else
    return gcd ( y , r ) ;
    }

    gcd ( 55 , 121 ) = 11

    5.(2)
    noname
    50

    7.(1)
    struct Node {
    int coef ;
    int exp ;
    struct Node *next ;
    }

    8.(2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5
    first->5->3->2->1->8->NULL

    8.(3)
    5
    3
    2
    1

    回覆刪除
  4. 題目2.
    (2)i=n;
    do{ a-=3;
    i/=3;
    }while(a>0);
    Ans: O(n)

    題目3.
     記憶體    位置    名稱  型態
    301 0x0012FF7C  i   int
    50 0x0012FF78  j  int
    0x0012FF78 0x0012FF74  ptr  *int
    0x0012FF7C 0x0012FF70  ptr1 *int
    * ptr = 50  * ptr1 = 301

    題目7.
    (1)Node之定義:
    struct Node
    {  int coef;
      int exp;
      struct Node* next;
    };

    題目8.
    (2)  
      i 0 1 2 3 4
    k=(i+4)%len 4 0 1 2 3
    array[k] 8 1 2 3 5
      first→5→3→2→1→8→NULL
    (3)輸出
    5
    3
    2
    1

    回覆刪除
  5. 2. (2) 0(n)
    3.
    記憶體 位置 名稱 型態
    301 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF7C 0x0012FF70 ptr1 int*
    *ptr=50 ptr1=301

    5. (1)4+30+4=38→40
    (2)noname 50

    7. (1)struct Node{
    int coef;
    int exp;
    struct Node*next;
    }
    (3)所有節點都是中間節點

    8.(1) struct Node{
    int data;
    struct Node*next;
    }
    (2)
    5 0 1 2 3 4
    (i+4)%len 4 0 1 2 3
    Array【k】 8 1 2 3 5

    first→5 →3 →2 →1 →8 →NULL
    (3) 5
    3
    2
    1

    回覆刪除
  6. 第一題
    int gcd(int x, int y)
    {int r=x%y;
    if(r==0)
    return y;
    else
    return gcd(y,r);
    }

    121/55=2...餘11 (121,11)
    121/11=11...餘0 (121,11)
    Ans 11

    第七題
    struct Node
    {int coef;
    int exp;
    struct Node*next;
    }

    第三題
    sizeof(int)=4(bytes)
    int i=301;
    int j-i/6;
    int*ptr=&j;
    int*ptr=&i;

    記憶體 位置 名稱 型態
    301 Ox0012FF7C i int
    50 Ox0012FF78 j int
    Ox0012FF78 Ox0012FF74 ptr int*
    Ox0012FF7C Ox0012FF70 ptr1 int*
    *ptr=50 *ptr1=301

    第八題
    i 0 1 2 3 4
    (i+4)%len 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL
    輸出
    5
    3
    2
    1

    回覆刪除
  7. 1.
    int gcd(int x,int y);
    {
    int r=x%y;
    if(r==0)
    return y;
    else
    return gcd(y,r);
    }

    gcd(55,121)=11

    3.
    記憶體 位置 名稱 型態
    301 0*0012FF7C i int
    50 0*0012FF78 j int
    0*0012FF78 0*0012FF74 ptr int*
    0*0012FF7C 0*0012FF70 ptr1 int*
    *ptr=50 *ptr=301

    5.
    (1)sizeof(x)=4+30+4=38→40
    (2)輸出
    noname
    50

    7.
    (1)
    struct Node
    {
    int coef;
    int exp;
    struct Node*next;
    }

    8.
    (1)
    struct*Node
    {
    int data;
    struct Node*next;
    }

    (2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL

    (3)
    5
    3
    2
    1

    回覆刪除
  8. 1.
    int gcd (int x,y ){
    int r=x%y;
    if (r==0) return y;
    else
    return ( y , r ) ;
    }

    5|55|121|2
    |55|110|
    | 0| 11|

    5.
    (1).40
    (2).noname
    50
     
    7.
    (1).
    struct node;{
    int coef;
    int exp;
    struct node*next;
    }
     
    8.(2).
     i   0 1 2 3 4
    i+4%5  4 0 1 2 3
    array[k]8 1 2 3 5

    first→5→3→2→1→8→NULL
    (3).
    5
    3
    2
    1
     
    (9).插入中間節點
    newnod->next=ptr->next;
    ptr->next=newnode;
     
    刪除中間節點
    while(current->next!=ptr)
     current = current->next;
    currnet->next = ptr ->next;

    回覆刪除
  9. 1. int gcd (int x, int y)
    {
    int r=x%y
    if (r==0) return y;
    else return gcd (y,r);
    }

    gcd(55,121)=11

    2. (2)O(n)

    3. 記憶體 位置 名稱 型態
    301 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF7C 0x0012FF70 ptr1 int*

    *ptr=50 *ptr1=301

    5. (1)4+30+4=38→40

    6. row col value
    0 0 7
    0 8 3
    3 3 3
    0 4 7

    7. (1) struct Node{
    int coef;
    int exp;
    struct Node *next;
    }
    (3) 所有節點都是中間節點。

    8. (2)first→5→3→2→1→8→NULL
    (3) 5
    3
    2
    1

    9. 插入中間節點
    newnode=ptr→next;
    ptr→next=newnode;

    刪除中間節點
    while (current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  10. 1.
    int gcd (int x, int y)
    {
    int r = x%y;
    if return y;
    else
    return
    }

    2. i=n;
    do{
    a-=3;
    i/=3;
    }while(a>0);
    On

    3. 記憶體    位置   名稱 型態
      301   0x0012FF7C   i  int
      50    0x0012FF78   j  int
    0x0012FF78 0x0012FF74   ptr  *int
    0x0012FF7C 0x0012FF70  ptr1  *int
    * ptr = 50  * ptr1 = 301

    5.
    a. 4+30+4=38 b. noname
    38+2=40 50
    sizeof(x)=40

    4. float d[9*12];
    int n=9 , k=12

    for(i=0; i<n; i++)
    for(j=0; j<k; j++)
    d[i*k+j]=(float) fun(i)/fun(j);

    6.
    (1)
    struct Node{
    int coef;
    int exp;
    struct Node*new
    }
    (3)因為所有節點都變成中間節點,變成只要處理中間節點

    8.
    (1) struct Node{ (2) i 0 1 2 3 4 (3)
    int data; k=(i+4)%5 4 0 1 2 3 5
    struct Node*new; array[k] 8 1 2 3 5 3
    } first->5->3->2->1->8->Null 2
    1

    9.
    while(current->next!=ptr)
    current = current->next;
    current->next = ptr->next;

    回覆刪除
  11. 3.
    記憶體 位置 名稱 型態
    301 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF7C 0x0012FF70 ptr1 int*
    *ptr=50 *ptr1=301

    5.
    (1)4+30+4=38→40
    (2)noname
    50
    sizeof(x)=40

    7.(1)struct Node{
    int coef;
    int exp;
    struct Node* next;
    }

    8.(1)struct Node{
    int data;
    struct Node*next;
    }

    (2) i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL

    (3) 5
    3
    2
    1

    9.插入中間節點:
    newnode→next=ptr→next;
    ptr→next=newnode;

    刪除中間節點:
    While(current→next!=ptr)
    current=current→next;
    current→next=ptr→next;

    回覆刪除
  12. 1.
    int gcd (int x , int y)
    {
    int r = x % y ;
    if(r = = 0) return y;
    else return gcd (y , r);
    }

    ANS:

     x   y
     55  121
    r=55
     121  55
    r=11
     55  11
    r=55
    y=11





    2.
    i = n;
    do {
    a-=3;
    i/=3;}
    while (a>0);

    ANS:
    O(n)





    3.
    記憶體     位置     名稱   型態
    301      0*0012FF7C   i    int
    50       0*0012FF78   j    int
    0*0012FF78   0*0012FF74   ptr   int*
    0*0012FF7C   0*0012FF70   ptr1   int*

    ANS:
    *ptr=50 *ptr1=301





    5.
    (1)size of (x) = 4+30+4 = 38 → 40
    (2)noname
      50





    7.
    (1)
    struct Node {
    int coef;
    int exp;
    struct Node*next;
    }





    8.
    (2)

    i      0 1 2 3 4 
    k=(1+4%5)  4 0 1 2 3
    array    8 1 2 3 5

    first → 5 → 3 → 2 → 1 → 8 → NULL

    (3)
    5 3 2 1

    回覆刪除
  13. 5.
    (1)
    4+30+4=38
    因為要四的倍數所以等於40

    7.
    (1)
    struct node
    {
    int coff;
    int exp;
    struct node *next
    };

    8.
    (2)
    first->5->3->2->1->8->NULL

    (3)5
    3
    2
    1

    回覆刪除
  14. 題目1.
    ----------------------------------
    int gcd (int x, int y)
    {
    int r = y % x ;
    if (r==0)
    return x;
    else
    retutn gcd(x,r);
    }

    計算
    2|121|55|5
    |110|55|
    |---|--|
    | 11| 0|

    ----------------------------------


    題目2.(2)
    ----------------------------------
    i=n;
    do{
    a-=3;
    i/=3;
    }while (a>0);

    ANS:O(n)
    ----------------------------------


    題目3.
    ----------------------------------
    記憶體 、 位置 、 名稱、 型態
    301、 0x0012FF7C 、 i 、int
    50 、 0x0012FF78 、 j 、 int
    0x0012FF78 、0x0012FF74 、ptr 、 int*
    0x0012FF7C、 0x0012FF70 、 ptr1 、int*

    ptr=50 ptr1=301
    ----------------------------------


    題目5.(1)
    ----------------------------------
    4+30+4=38 → 40
    ----------------------------------


    題目6.
    ----------------------------------
    列 欄 值
    0 0 7
    0 8 3
    3 3 3
    4 0 7
    ----------------------------------


    題目7.(1)
    ----------------------------------
    struct Node
    {
    int coef;
    int exp;
    struct Node* next;
    }
    ----------------------------------


    題目8.
    ----------------------------------
    i : 0 、 1 、2、 3 、 4
    (i+4)%5 : 4、 0 、 1 、 2 、 3
    array[k]: 8 、1 、 2 、3 、5

    (2) first → 5 → 3 → 2 → 1 → 8 → NULL

    (3)
    5
    3
    2
    1
    ----------------------------------

    回覆刪除
  15. 1. gcd(55,121)=11
    5 55 121 2
    55 110
    0 115
    11

    2.
    0(nlogn) 0(n)

    3.
    50 0x0012FF78
    0x0012FF78 0x0012FF74
    0x0012FF7C 0x0012FF70
    *ptr=50 *ptr1=301

    5.
    (1)sizeof(x)=4+30+4=38→40
    (2)輸出noname
    50

    6.
    row 0034
    col 0830
    vol 7337

    7.
    (1)stuct Node
    int coef;
    int exp;
    struct Node*next;

    8.
    (1)
    struct Node{
    int data;
    struct Node*next;
    }
    (2)
    i 01234
    k=(i=4)%5 40123
    array[k] 81235

    first→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1

    9.
    (1)插入中間節點:
    newnode→next=ptr→next;
    ptr→next=newnode;
    (2)刪除中間節點
    while(current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  16. 1.gcd(55,121)=11
    5︳55︳121︳2
    ︳55︳110︳
    ︳ 0︳ 11︳
    2. (2.)
    i=n;
    do{
    a-=3;
    i/=3;
    while(a>0);

    Big O=O(n)
    3.
    sizeof(int)=4(bytes)
    int i=301;
    int j-i/6;
    int*ptr=&j;
    int*ptr=&i;

    記憶體 位置 名稱 型態
    301 |0x0012FF7C| i int
    50 |0x0012FF78| j int
    0x0012FF78| 0x0012FF74| ptr int*
    0x0012FF7C| 0x0012FF70| ptr1 int*

    5.
    (1)sizeof(x)=4+30+4=38→40

    8.
    (2)
    i → 0 1 2 3 4
    k=(i+4)%5→ 4 0 1 2 3
    array[k] → 8 1 2 3 5
    first→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1

    回覆刪除
  17. 5.(1)4+30+4=38-佔40個位元

    8.(2)
    i:0 1 2 3 4
    k=(i+4)%5:4 0 1 2 3
    array[k]:8 1 2 3 5

    first→5→3→2→1→8→Null

    (3)
    5
    3
    2
    1

    回覆刪除
  18. 1.int gcd(intx, inty)
    {
    int r=x%y;
    if(r==0)return y;
    else return gcd(y,r);
    }
    gcd(55,121)=11

    2.0(nlogn)
    0(n)
    0(logn)

    3. 301 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF7C 0x0012FF70 ptr int*

    *prt = 50 *ptr1 = 301

    5. 4+30+4 =38
    sizeof(X)=40

    noname
    50

    7. struct Node
    {
    int coef;
    int exp;
    struct Node*next;
    }

    8. i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first-5-3-2-1-8-NULL

    5 3 2 1

    9. 刪除中間節點
    while(current->next!=ptr)
    current=current->next;
    current->next=ptr->next;
    插入中間節點
    newnode->next=ptr->next;
    ptr->next=newnode;

    回覆刪除
  19. 1. gcd(55,121)=11
    5 55 121 2
    55 110
    0 115
    11
    2.(2)O(n)
    3.
    301 0x0012ff7c
    50 0x0012ff78
    0x0012ff78 0x0012ff74
    0x0012ff7c 0x0012ff70

    *ptr=50 *ptr1=301
    4.float[9*12]; c[i*k+j]=(float)fun(i)/fun(j);


    5. (1)sizeof(x)=4+30+4=38→40
    (2)輸出noname
    50

    7. (1)stuct Node
    int coef;
    int exp;
    struct Node*next;

    8. (2) i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL
    (3) 5
    3
    2
    1

    9. (1)插入中間節點:
    newnode→next=ptr→next;
    ptr→next=newnode;
    (2)刪除中間節點
    while(current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  20. 1.gcd(55,121)=11
    5 55 121 2
    55 110
    0 11


    2.
    (1)O(n longn)

    5.(2)輸出=noname
    50

    7.
    (1)struct Node{
    int coef;
    int exp;
    struct Node*next;
    }
    (3)所有節點都是中間節點


    8.
    (2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→Null

    (3)
    5
    3
    2
    1

    回覆刪除
  21. 1.
    gcd(55,121)=11
    5│55│121│2
    .│55│110│
    .│ 0│ 11│

    int gcd(int x,int y)
    {
    int r=x%y;
    if(r==0)x%y;
    if(r==0)returny;
    else retum grd(y,r);
    }

    2.
    (1)O( n log n )
    (2)O(n)

    5.
    (1)sizef(x)=4+30+4=38→40
    (2)輸出
    noname
    50

    7.
    (1)struct Node{
    int coef;
    int exp;
    struct Node* next;
    }
    (3)使用開頭節點的環狀串列之優點:所有節點都是中間節點。

    8.
    (1)struct Node{
    int data a;
    struct Node* next;
    }
    (2) i│0 1 2 3 4
    k=(i+4)%5│4 0 1 2 3
    array[k] │8 1 2 3 5
    first→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1

    9.
    插入中間節點:
    newnode→next=ptr→next;
    prt→next=newnode;
    刪除中間節點:
    while(current=current→next;
    current→next=prt→next;)

    回覆刪除
  22. 1. int gcd(int x,int y)
    {
    int r==x%y;
    if (r==0) return y;
    else return gcd(y,r);
    }

    5|55|121|2 gcd(55,121)=11
    |55|110|
    | 0| 11|

    3. 記憶體    位置    名稱  型態
    301 | 0x0012FF7C | i int
    50 | 0x0012FF78 | j int
    0x0012FF78 | 0x0012FF74 | ptr *int
    0x0012FF7C | 0x0012FF70 | ptr1 *int
    *ptr=50 *ptr1=301

    5. (1)4+30+4=38→40
    (2)noname
    50

    7. struct Node{
    int coef;
    int exp;
    struct Node*next;
    }

    8.(1) struct Node{
    int data;
    struct Node*next;
    }
    (2) i | 0 1 2 3 4
    k=(i+4)%5| 4 0 1 2 3
    array[k] | 8 1 2 3 5

    first→5→3→2→1→8→NULL

    (3)5
    3
    2
    1

    9. 刪除中間節點
    while(current→next!=ptr)
    current=current→next;
    cuttent→next=ptr→next;

    回覆刪除
  23. (1)struct Node{
    int data;
    struct Node*next;
    }
    (2) i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL

    (3) 5
    3
    2
    1

    回覆刪除
  24. 8.
    (1)struct Node{
    int data;
    struct Node*next;
    }
    (2) i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL

    (3) 5
    3
    2
    1

    回覆刪除
  25. 題目一
    int gcd (int x,y ){
    int r=x%y;
    if (r==0) return y;
    else
    return ( y , r ) ;
    }

    5|55|121|2
    |55|110|
    | 0| 11|

    題目三
    記憶體 位置 名稱 型態
    301 0*0012FF7C i int
    50 0*0012FF78 j int
    0*0012FF78 0*0012FF74 ptr int*
    0*0012FF7C 0*0012FF70 ptr1 int*
    *ptr=50 *ptr=301

    題目五
    (1)sizeof(x)=4+30+4=38→40
    (2)輸出
    noname
    50

    題目七
    (1) struct Node{
    int coef;
    int exp;
    struct Node *next;
    }
    (3) 所有節點都是中間節點

    題目八
    (2)first→5→3→2→1→8→NULL
    (3) 5
    3
    2
    1

    題目九
    插入中間節點
    newnode=ptr→next;
    ptr→next=newnode;

    刪除中間節點
    while (current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  26. 題目1.
    struct*gcd(int x,int y)}
    int r;
    r=(x%y);
    if(r==0)
    return y
    else
    return gcd(y,r);
    {

    題目2.
    1.0(nlogn) 2.0(n) 3.0(logn)
    題目5.
    1. 4+30+4=38→40
    2. noname 50
    題目7.
    sturuct Node{
    int coef;
    int exp;
    sturuct Node*next;
    }
    題目8.
    (1) struct Node{
    int data;
    struct Node*next;
    }
    (2)
    i 0 1 2 3 4
    (i+4)%len 4 0 1 2 3
    array[k] 8 1 2 3 5
    first→5 →3 →2 →1 →8 →NULL
    (3)
    5
    3
    2
    1

    回覆刪除
  27. 第一題
    int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }

    第二題
    1) O(n log n) 2) O(n) 3) O(log n)

    第五題
    (1)sizeof(x)=4+30+4=38→40
    (2)輸出
    noname
    50

    第七題
    sturuct Node{
    int coef;
    int exp;
    sturuct Node*next;
    }

    第八題
    1)
    struct*Node
    {
    int data;
    struct Node*next;
    }

    2)
    i 0 1 2 3 4
    (i+4)%len 4 0 1 2 3
    array[k] 8 1 2 3 5
    first→5→3→2→1→8→NULL
    輸出
    5
    3
    2
    1

    第九題
    源碼
    while(current→next!=ptr)
    current=current→next;
    cuttent→next=ptr→next;

    回覆刪除
  28. 1. gcd(55,121)=11
    5 55 121 2
    55 110
    0 115
    11
    (2)
    i=n;
    do{ a-=3;
    i/=3;
    }while(a>0);
    Ans: O(n)


    3.
     記憶體    位置    名稱  型態
    301 0x0012FF7C  i   int
    50 0x0012FF78  j  int
    0x0012FF78 0x0012FF74  ptr  *int
    0x0012FF7C 0x0012FF70  ptr1 *int
    * ptr = 50  * ptr1 = 301


    8.
    i 0 1 2 3 4
    (i+4)%len 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL
    輸出
    5
    3
    2
    1

    9.
    (1)插入中間節點:
    newnode→next=ptr→next;
    ptr→next=newnode;
    (2)刪除中間節點
    while(current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  29. 1. int gcd(intx,inty)

    {
    int r=x%y;
    if(r==0)return y;

    else return gcd(y,r);
    }
    2.(2)

    O(n)

    3.
    記憶體 位置 名稱 型態

    301 0x0012ff7c i int
    50 0x0012ff78 j int
    0x0012ff78 0x0012ff74 ptr int*
    0x0012ff74 0x0012ff70 ptr1 int*

    *ptr=50 *ptr1=301

    4.
    float d[108];
    int n=9,k=12;
    for(i=0;i < n;i++)
    for(j=0;j < k;j++)
    d[i*l+j]=float fun(i)/fun(j);

    5.
    (1)
    sizeof(x)=4+30+4=38--->40
    (2)
    noname 50
    7.
    (1)
    struct Node {
    int coef;
    int exp;
    struct Node*next;
    (2)
    所有節點都是中間節點
    8.
    (2)

    i 0 1 2 3 4

    k=(i+4)%5 4 0 1 2 3

    array[k] 8 1 2 3 5


    first->5->3->2->1->8->NULL

    (3)
    5
    3
    2
    1
    9.
    插入: next->next=ptr->next;

    Newnode=ptr->next;


    刪除: while(current->next!=ptr)

    current=current->next;

    current->next=ptr->next;

    回覆刪除
  30. 1. int gcd(intx,inty)

    {
    int r=x%y;
    if(r==0)return y;

    else return gcd(y,r);
    }

    2.(2)

    O(n)

    3.
    記憶體 位置 名稱 型態

    301 0x0012ff7c i int
    50 0x0012ff78 j int
    0x0012ff78 0x0012ff74 ptr int*
    0x0012ff74 0x0012ff70 ptr1 int*

    *ptr=50 *ptr1=301

    4.
    float d[108];
    int n=9,k=12;
    for(i=0;i < n;i++)
    for(j=0;j < k;j++)
    d[i*l+j]=float fun(i)/fun(j);

    5.
    (1)
    sizeof(x)=4+30+4=38--->40

    6.
    row col value
    0 0 7
    0 8 3
    3 3 3
    4 0 7

    7.
    (1)
    struct Node {
    int coef;
    int exp;
    struct Node*next;
    (2)
    所有節點都是中間節點

    8.
    (2)

    i 0 1 2 3 4

    k=(i+4)%5 4 0 1 2 3

    array[k] 8 1 2 3 5


    first->5->3->2->1->8->NULL

    (3)
    5
    3
    2
    1

    9.
    插入: next->next=ptr->next;

    Newnode=ptr->next;


    刪除: while(current->next!=ptr)

    current=current->next;

    current->next=ptr->next;

    回覆刪除
  31. 7
    (1)
    Node之定義?
    struct Node{
    int coef;
    int exp;
    struct Node* next;
    }

    8
    (2)
    first-> 5-> 3-> 2-> 1-> 8-> NULL
    (3)
    5
    3
    2
    1

    回覆刪除
  32. 1.
    int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }
    2.
    (1)o(nlogn) (2) o(n) (3) o(logn)

    3.
    記憶體    位置    名稱  型態
    301 0x0012FF7C  i   int
    50 0x0012FF78  j  int
    0x0012FF78 0x0012FF74  ptr  *int
    0x0012FF7C 0x0012FF70  ptr1 *int
    * ptr = 50  * ptr1 = 301
    4.
    float d[108];
    int n=9 、k=12

    for(i=0; i<n; i++)
    for(j=0; j<k; j++)
    d[i*k+j]=(float) fun(i)/fun(j);
    5.
    1)sizeof(x)=4+30+4=38→40
    (2)輸出noname
    50
    7.
    (1) struct Node{
    int coef;
    int exp;
    struct Node *next;
    }
    (3) 所有節點都是中間節點。
    8.
    (2)first→5→3→2→1→8→NULL
    (3) 5.3.2.1
    9.
    插入中間節點
    newnode=ptr→next;
    ptr→next=newnode;
    刪除中間節點
    while (current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  33. 1. int gcd (int x,int y)
    { int r=x%y;
    if (r= =o)return y;
    else return gcd (y,r);
    }
    2.(1)0(n logn)(2)0(n)(3)0(logn)

    3.記憶體 位置 名稱 型態
    30 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF74 0x0012FF70 ptr1 int*

    4.float[9*12]; c[i*k+j]=(float)fun(i)/fun(j);

    5.(2)noname 50

    6.row col val
    0 0 7
    0 8 3
    3 3 3
    4 0 7

    7.(1)struct Node{
    int coef;
    int exp;
    struct Node*next;
    }

    8.(2) i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array 8 1 2 3 5

    回覆刪除
  34. 1.
    int gcd (int x, int y)
    gcd(55,121)=11

    int r=x%y; if(r==0) return;
    else return gcd (y,r);

    5│55│121│2
    │55│121│
    =============
    │0 │11│

    2.
    0(n logn)
    0(n)
    0(log n)

    5.
    (1)4+30+4=38-->40
    (2)noname
    50

    7.(1)
    stuct Node{
    int coef;
    int exp;
    struct Node*next;
    }

    (3)所有節點都是中間節點

    8.
    (2) i │ 01234
    k=(i+4)55│ 40123
    array[k] │ 81235

    (3)
    5
    3
    2
    1

    9.插入中間節點
    newnod->next=ptr->next;
    ptr->next=newnode;

    回覆刪除
  35. 1.
    int gcd (int x, int y)
    {
    int r=x%y
    if (r==0) return y;
    else return gcd (y,r);
    }

    gcd(55,121)=11

    2.
    (1)
    o(n logn)
    (2)
    O(n)

    3.

    記憶體    位置    名稱  型態
    301 0x0012FF7C  i   int
    50 0x0012FF78  j  int
    0x0012FF78 0x0012FF74  ptr  *int
    0x0012FF7C 0x0012FF70  ptr1 *int
    * ptr = 50  * ptr1 = 301

    5.

    (1)sizeof(x)=4+30+4=38→40
    (2)輸出noname= 50

    7.
    dtruct Node{
    int coef;
    int exp;
    struct Node*next;
    }
    8.
    (1)
    struct Node{
    int data;
    struct Node*next;
    }
    (2)
    i 0 1 2 3 4
    k=i+4%5 4 0 1 2 3
    array[k] 8 1 2 3 5
    first→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1


    9.
    刪除中間節點
    while (current→next!=prt)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  36. 1. 5│55│121│2
    │55│110│
    ├─┼──┤
    │ 0│ 11│

    int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }

    2-2 O(n)

    5-1 4+30+4=38→40
    5-2 n0name
    50

    7-1 stuct Node
    int coef;
    int exp;
    struct Node*next;
    7-3 所有節點都是中間節點

    8-1
    struct Node{
    int date;
    struct Node*next;
    }
    8-2
    first→5→3→2→1→8→NULL
    8-3
    5
    3
    2
    1

    9-2
    while(current→next!=ptr)
    current=current→next;
    cuttent→next=ptr→next;

    回覆刪除
  37. 1.
    int gcd(int x,int y)
    {int r=x%y;
    if (r==0) return y;
    else return gcd(y,r);
    }

    5.
    (1)sizeof(x)=40
    (2)
    noname
    50

    6.
    欄 列 值
    0 0 7
    0 8 3
    3 3 3
    4 0 7

    7.
    struct Node{
    int coef;
    int exp;
    struct Node*next;
    }

    8.(2)
    i      0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5
    (3)
    5
    3
    2
    1

    9.while(current->next!=ptr)
    current=current->next;
    current->next=ptr->next;

    回覆刪除
  38. 1.
    gcd( int x,int y )
    {
    r=x % y;
    if( r==0 )
    return y;
    else
    return gcd ( y,r );

    5.
    (1)30+4+4=38 40-->要四倍數

    (2)noname
    50

    7.

    struct Node {
    int coef;
    int exp;
    struct Node* next;
    }

    8.
    (1)
    struct Node
    {
    int data
    struct Node* next;
    };
    (2)
    frist->5->3->2->1->8->NULL
    (3)
    5
    3
    2
    1

    9.
    插入: next->next=ptr->next;

    Newnode=ptr->next;


    刪除: while(current->next!=ptr)

    current=current->next;

    current->next=ptr->next;

    回覆刪除
  39. 1.
    int gcd(int x,int y)
    {
    int r=x%y;
    if (r==0)
    return y;
    else
    return gcd(y,r) ;
    }

    gcd (55,121) = 11

    2.
    (1)O(nlogn)
    (2)O(n)
    (3)O(logn)

    5. sizeof(x)=4+30+4=38→40
    7.
    (1) struct Node{
    int coef;
    int exp;
    struct Node* next;}

    回覆刪除
  40. 1.
    int gcd(int x,int y);
    {
    int r=x%y;
    if(r==0)
    return y;
    else
    return gcd(y,r);
    }

    gcd(55,121)=11

    4. float d[9*12];
    int n=9 , k=12
    for(i=0; i<n; i++)
    for(j=0; j<k; j++)
    d[i*k+j]=(float) fun(i)/fun(j);

    5. (1)sizeof(x)=4+30+4=38→40
    (2)輸出noname
    50

    7.(1)
    struct Node
    {
    int coef;
    int exp;
    struct Node*next;
    }

    8. (2)first→5→3→2→1→8→NULL
    (3) 5
    3
    2
    1

    9.刪除中間節點
    while (current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  41. 1.
    int gcd ( int x , int y )
    {
    int r = x % y ;
    if ( r = = 0 )
    return y ;
    else
    return gcd ( y , r ) ;
    }
    gcd ( 55 , 121 ) = 11

    5 55 121 2
    55 110
    0 115
    11
    Ans:11

    2.
    (2)i=n;
    do{ a-=3;
    i/=3;
    }while(a>0);
    Ans:O(n)

    3.
    記憶體 位置 名稱 型態
    301 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF7C 0x0012FF70 ptr1 int*
    *ptr=50 *ptr1=301

    5.
    (2)輸出
    noname
    50

    7.
    (1)
    struct Node
    {
    int coef;
    int exp;
    struct Node*next;
    }

    8.
    (2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k]8 1 2 3 5

    first→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1

    9.
    (1)插入中間節點:
    newnode→next=ptr→next;
    ptr→next=newnode;
    (2)刪除中間節點
    while(current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  42. 1.
    int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }
    算式:
    5│55│121│2
    │55│110│
    │──┼───┤
    │ 0│ 11│

    2.
    (1)
    o(n)*o(log n)
    =o(n(log n))

    3.
    301 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF7C 0x0012FF70 ptr1 int*
    *ptr=50 *ptr1=301

    5.
    (1)4+30+4=38→40
    (2)noname
    50
    ptr[0]=x;
    ptr=&x;

    7.
    (1)
    struct Node
    {
    int coef;
    int exp;
    struct Node*next;
    }

    8.
    (2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k]8 1 2 3 5

    first→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1

    9.
    (1)插入中間節點:
    newnode→next=ptr→next;
    ptr→next=newnode;
    (2)刪除中間節點
    while(current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  43. 1.
    int gcd(cint x,int y)
    {int r=x%y;
    if(r==0)return y;
    else return
    gct(t.y);}

    2.
    (1)
    a=0;
    for(k=1;k < n;k+2=0)
    for(j=n;j > 0;j/=3)
    a++
    →O(n iog n)

    (2)
    i=n;do{a--3;
    i/=3;}
    while(a > 0);
    →O(n)

    (3)
    void output(int n)
    {if (n >= 0)
    output(n/2);
    else
    out << "Poooo"}
    →O(log n)

    5.
    struct Person
    {int id;
    char name[30];
    int age;}
    struct Person X={2,"小英",50};
    struct Person Y={3,"noname",20};
    struct Person ptr[2];
    ptr[0]=x;

    (1)
    →sizeof(x)=4+30+4=38=40

    (2)
    輸出=nonamet 50
    cout << (ptr+1→name << end1;
    cout << (*pre).age << end1;

    7.
    使用含開頭節點環狀串列來處裡多項式

    (1)
    Node之定義
    struct Node
    {int coef;
    int exp;
    struct Node* next;}

    8.
    (1)Node之定義?
    struct Node {int data;
    struct Node*nxt; }

    (3)輸出:
    5.3.2.1

    回覆刪除
  44. 1.
    gcd(55,121)=11
    5 55 121 2
    55 110
    0 115
    11


    2.
    (2) O(n)


    3.
    記憶體 位置 名稱 型態
    301 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF7C 0x0012FF70 ptr1 int*
    *ptr=50 ptr1=301


    5.
    (1)4+30+4=38→40
    (2)noname 50


    7.
    (1)struct Node{
    int coef;
    int exp;
    struct Node*next;
    }


    8.
    (1)
    struct Node{
    int data;
    struct Node*next;
    }
    (2)
    5 0 1 2 3 4
    (i+4)%len 4 0 1 2 3
    Array【k】 8 1 2 3 5

    first→5 →3 →2 →1 →8 →NULL
    (3)
    5
    3
    2
    1


    (9)
    插入中間節點
    newnod->next=ptr->next;
    ptr->next=newnode;
     
    刪除中間節點
    while(current->next!=ptr)
     current = current->next;
    currnet->next = ptr ->next;

    回覆刪除
  45. 1.int gcd (int x, int y){
    int r = x%y;
    if return y;
    else
    return
    }

    5.(1)
    4+30+4=38→40
    (2)
    noname
    50

    7.(1)
    sturuct Node{
    int coef;
    int exp;
    sturuct Node*next;
    }

    8.
    (1)
    struct*Node
    {
    int data;
    struct Node*next;
    }

    (2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL

    (3)
    5
    3
    2
    1

    9.
    插入中間節點
    newnode=ptr→next;
    ptr→next=newnode;
    刪除中間節點
    while (current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  46. 1.
    gcd(55,121)=11
    5 55 121 2
    55 110
    0 115
    11

    int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }
    5.
    (1)sizeof(x)=4+30+4=38→40
    7.
    stuct Node
    int coef;
    int exp;
    struct Node*next;

    8.

    (1)struct Node{
    int date;
    struct Node*next;
    }

    (2)
    First→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1

    回覆刪除
  47. 1.
    int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }

    算式:
    5│55│121│2
    │55│110│
    ├--┼---┤
    │ 0│ 11│


    3.
    記憶體    位置    名稱  型態
    301     |0x0012FF7C| i  | int
    50    |0x0012FF78| j  |int
    0x0012FF78|0x0012FF74| ptr |*int
    0x0012FF7C|0x0012FF70| ptr1 |*int
    * ptr = 50  * ptr1 = 301

    5.(1)
    4+30+4=38→40
    (2)
    noname
    50


    6.
      列 欄 值
      0 0 1
      0 8 3
      3 3 3
      4 0 7


    7.
    (1)
    stuct Node{
    int coef;
    int exp;
    struct Node*next;
    }


    8.
    (2)
    First→5→3→2→1→8→NULL
    (3)
    5 3 2 1


    9.
    插入中間節點
    newnod->next=ptr->next;
    ptr->next=newnode;
     
    刪除中間節點
    while(current->next!=ptr)
     current = current->next;
    currnet->next = ptr ->next;

    回覆刪除
  48. 1.
    int gcd(int x,int y);
    {
    int r=x%y;
    if(r==0)
    return y;
    else
    return gcd(y,r);
    }

    gcd(55,121)=11

    3.
    記憶體 位置 名稱 型態
    301 0*0012FF7C i int
    50 0*0012FF78 j int
    0*0012FF78 0*0012FF74 ptr int*
    0*0012FF7C 0*0012FF70 ptr1 int*
    *ptr=50 *ptr=301

    5.
    (1)sizeof(x)=4+30+4=38→40
    (2)輸出
    noname
    50

    7.
    (1)
    struct Node
    {
    int coef;
    int exp;
    struct Node*next;
    }

    8.
    (1)
    struct*Node
    {
    int data;
    struct Node*next;
    }

    (2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL

    (3)
    5
    3
    2
    1

    回覆刪除
  49. 1.
    int gcd ( int x , int y )
    {
    int r = x % y ;
    if ( r = = 0 )
    return y ;
    else
    return gcd ( y , r ) ;
    }
    gcd ( 55 , 121 ) = 11

    5 55 121 2
    55 110
    0 115
    11
    Ans:11

    2.
    (2)i=n;
    do{ a-=3;
    i/=3;
    }while(a>0);
    Ans: O(n)

    5. (1)sizeof(x)=4+30+4=38→40
    (2)輸出noname
    50

    7. (1)stuct Node
    int coef;
    int exp;
    struct Node*next;

    8. (2) i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL
    (3) 5
    3
    2
    1

    9. (1)插入中間節點:
    newnode→next=ptr→next;
    ptr→next=newnode;
    (2)刪除中間節點
    while(current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  50. 1.int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }

    5│55│121│2
    │55│110│
    ├─ ┼── ┤
    │ 0│ 11│

    2. (2) 0(n)

    3.記憶體    位置    名稱  型態
    301 0x0012FF7C  i   int
    50 0x0012FF78  j  int
    0x0012FF78 0x0012FF74  ptr  *int
    0x0012FF7C 0x0012FF70  ptr1 *int
    * ptr = 50   * ptr1 = 301

    5.
    (1)
    4+30+4=38→40
    (2)
    noname
    50

    7.
    (1)Node之定義:
    struct Node
    { 
    int coef;
    int exp;
    struct Node* next;
    };

    8.
    (2)  
      i 0 1 2 3 4
    k=(i+4)%len 4 0 1 2 3
    array[k] 8 1 2 3 5
      first→5→3→2→1→8→NULL
    (3)輸出
    5
    3
    2
    1


    9.
    刪除中間節點
    while (current → next != ptr)
    current = current → next;
    cuttent → next = ptr → next;

    回覆刪除
  51. 2.
    O(nlogn),O(n),O(logn)

    5.
    (1)sizeof(x)=4+30+4=38→40
    (2)輸出noname,50

    7.
    (1)stuct Node
    int coef;
    int exp;
    struct Node*next;

    8.
    (2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5

    first→5→3→2→1→8→NULL

    (3)
    5
    3
    2
    1

    9.
    (2)刪除中間節點
    while(current→next!=ptr)
    current→next=ptr→next;
    current=ptr→next;

    回覆刪除
  52. 1.
    int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }

    5│55│121│2
    │55│110│
    ├─┼─-┤
    │ 0│ 11│

    2.

    (2) 0(n)

    3.記憶體    位置    名稱  型態
    301 0x0012FF7C  i   int
    50 0x0012FF78  j   int
    0x0012FF78 0x0012FF74  ptr  *int
    0x0012FF7C 0x0012FF70  ptr1 *int

    * ptr = 50   * ptr1 = 301


    6.
    row col value
    0 0 7
    0 8 3
    3 3 3
    4 0 7


    5.
    (2)noname
    50

    7.

    (1)
    sturuct Node{
    int coef;
    int exp;
    sturuct Node*next;
    }

    (3)
    所有節點都是中間節點


    8.
    (2)  
    i 0 1 2 3 4
    k=(i+4)%len 4 0 1 2 3
    array[k] 8 1 2 3 5
      
    first→5→3→2→1→8→NULL
    (3)輸出
    5
    3
    2
    1


    9.
    插入中間節點
    newnod->next=ptr->next;
    ptr->next=newnode;

    刪除中間節點
    while (current → next != ptr)
    current = current → next;
    cuttent → next = ptr → next;

    回覆刪除
  53. 1.int gcd(int x,int y)
    {int r=x%y;
    if (r==0)return y;
    else return gcd(y,r);
    }
    算式:
    5│55│121│2
    │55│110│
    ├─┼──┤
    │ 0│ 11│

    5.(1)
    4+30+4=38→40
    (2)
    noname
    50

    7.(1)
    sturuct Node{
    int coef;
    int exp;
    sturuct Node*next;
    }

    8.(1)
    struct Node{
    int date;
    struct Node*next;
    }
    (2)
    First→5→3→2→1→8→NULL
    (3)
    5
    3
    2
    1

    回覆刪除
  54. 1. gcd(55,121)=11
    5 55 121 2
    55 110
    0 115
    11
    3.
    記憶體 位置 名稱 型態
    301 0x0012FF7C i int
    50 0x0012FF78 j int
    0x0012FF78 0x0012FF74 ptr int*
    0x0012FF7C 0x0012FF70 ptr1 int*
    *ptr=50 ptr1=301

    5.(2)
    noname
    50

    6. row col value
    0 0 7
    0 8 3
    3 3 3
    0 4 7

    7. (1)struct Node{
    int coef;
    int exp;
    struct Node*next;
    }
    (3)所有節點都是中間節點

    8.(2)
    i 0 1 2 3 4
    k=(i+4)%5 4 0 1 2 3
    array[k] 8 1 2 3 5
    first->5->3->2->1->8->NULL

    8.(3)
    5
    3
    2
    1

    回覆刪除

HTML 編輯器