herrDeng網內搜尋

自訂搜尋

Ads

2008年11月13日 星期四

data structure 期中考乙

data structure 期中考乙

54 則留言:

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

題目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

匿名 提到...

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

匿名 提到...

第一題
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

匿名 提到...

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

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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

匿名 提到...

題目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
----------------------------------

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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;)

匿名 提到...

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;

匿名 提到...

(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)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

匿名 提到...

題目一
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;

匿名 提到...

題目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

匿名 提到...

第一題
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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;}

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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;

匿名 提到...

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

匿名 提到...

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

Related Posts Plugin for WordPress, Blogger...

熱門文章