本次實驗是根據陳越老師的資料結構學習與實驗指導中的第二章,陣列元素迴圈右移。
一共有兩個方法:①是每次移動1個元素,迴圈移動n次 ②通過三次逆序陣列的部分資料
下面是**:
方法①
#include
#define arraymax 100
int dir;
void
shift
(int arr,
int n)
;void
show
(int arr,
int n)
;int
main()
if(dir==1)
printf
("\n右移前:\n");
if(dir==0)
printf
("\n左移前:\n");
show
(a,n)
; m%
=n;for
(i=0
;i(dir==1)
printf
("\n右移後:\n");
if(dir==0)
printf
("\n左移後:\n");
show
(a,n);}
void
shift
(int arr,
int n)
arr[0]
=arrayend;}if
(dir==0)
arr[n-1]
=arrayhead;}}
void
show
(int arr,
int n)
}
方法②`
#include
#define arraymax 100
#define swap(a,b) a^=b,b^=a,a^=b;
void
show
(int arr,
int n)
;void
shift
(int arr,
int n,
int m)
;int dir;
intmain()
if(dir==1)
printf
("\n右移前:\n");
if(dir==0)
printf
("\n左移前:\n");
show
(a,n);
m%=n;
shift
(a,n,m);if
(dir==1)
printf
("\n右移後:\n");
if(dir==0)
printf
("\n左移後:\n");
show
(a,n);}
void
shift
(int arr,
int n,
int m)
for(i=
0,j=m-
1;i,j--
)for
(i=m,j=n-
1;i,j--)}
}if(dir==0)
for(i=
0,j=n-m-
1;i,j--
)for
(i=n-m,j=n-
1;i,j--)}
}}void
show
(int arr,
int n)
}
現在先貼著**吧,以後有時間在補充。本人也算是個小白而已,有什麼問題請指教! 資料結構學習筆記(二)陣列與結構
許多程式設計師只把陣列看作 一片連續的記憶體區域 這只是陣列的實現方式,儘管陣列通常被實現為一片連續的記憶體區域,但實現並非陣列的全部。直觀上,陣列由下標 或稱為索引 和值所組成的序對集合,其中對於每個有定義的下標,都存在乙個與其關聯的值。當把陣列作為抽象資料型別時,更加關心的是能夠在陣列上執行的操...
資料結構實驗指導
資料結構實驗指導 實驗一 線性表的操作 實驗一a 線性表的順序儲存結構操作 題目 設順序表va中的資料元素遞增有序,試寫一演算法,將x插入到順序表的適當位置上,以保證該錶的有序性。實驗目的 掌握用動態陣列實現線性表的順序儲存結構及順序表的初始化 查詢 插入操作。分析 本程式設計方法 先根據插入結點x...
資料結構學習(二)
寬度優先遍歷 寬度優先遍歷和廣度優先遍歷是兩種不同的搜尋的方法,不同之處主要在於廣度優先搜尋需要使用到佇列,鑑於上一節已經介紹過深度優先遍歷,這裡直接舉個例子,貼上 吧,哈哈,偷個小懶 對於圖中的節點,要進行廣度優先搜尋,過程如下 假設先從a開始搜尋,將a加入佇列中 直接從佇列中彈出a,搜尋a鄰接的...