資料結構學習與實驗指導 二)陣列元素移動

2021-09-28 18:34:08 字數 1802 閱讀 6063

本次實驗是根據陳越老師的資料結構學習與實驗指導中的第二章,陣列元素迴圈右移。

一共有兩個方法:①是每次移動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鄰接的...