c語言數(shù)據(jù)結構順序表_第1頁
c語言數(shù)據(jù)結構順序表_第2頁
c語言數(shù)據(jù)結構順序表_第3頁
c語言數(shù)據(jù)結構順序表_第4頁
c語言數(shù)據(jù)結構順序表_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數(shù)據(jù)結構上機實驗課后練習報告:天明學號:班級:通信1412015年9月28日星期一1、實驗一:編寫一個程序,實現(xiàn)順序表的各種基本運算,并在此基礎上設計一個主 程序完成以下功能。1 .初始化順序表L2 .依次采用尾插法或者頭插法插入元素 a,b,c,d,e3 .輸出順序表L4 .輸出順序表的長度5 .判斷順序表是否為空6 .輸出順序表的第四個元素7 .輸出元素a的位置8 .在第三個元素位置插入元素f9 .輸出順序表L10 .刪除順序表L的第四個元素11 .輸出順序表L12 .釋放順序表實驗代碼:#include<stdio.h>#include<stdlib.h>#inc

2、lude<malloc.h>#include<string.h># define MaxSize 20/設置順序表的初始長度# define ListAdd 5每次申請增加的存大小# define OVERFLOW -1# define OK 0# define ERROR -2typedef char ElemType;Word資料typedef structElemType *elem;int length;順序表長度int listsize;順序表占用的存空間順序表定義SqList;I*初始化順序表函數(shù)*/void InitSq_List(SqList &

3、L)L.elem = new ElemTypeMaxSize;if(!L.elem)exit(OVERFLOW);L.length = 0;L.listsize = L.length;/* 創(chuàng)建一個順序表 */ void GreatSqList(SqList &L,int n) 在堆上申請存存申請失敗int i;for(i = 0;i < n;i+) /依次輸入順序表容scanf("%c”,&L.elemi);fflush(stdin);+L.length;/* 銷毀順序表 */void DeatrotSqList(SqList &L)delete L.

4、elem;L.length = 0;L.listsize = 0;/尾插法插入元素釋放指針指向的存int SqList_Inser(SqList &L,int i,ElemType e) int j;ElemType *p;/插入位置非法則退出if(i<1 | i>L.length + 1) return ERROR;if(L.length >= L.listsize)如果初始化申請的空間已滿,則重新申(ElemType*)realloc(L.elem,(L.listsize+ListAdd) *sizeof( ElemType );if(!p) return OVE

5、RFLOW;L.elem = p;L.listsize += ListAdd;for(j=L.length - 1;j>=i-1;j-)L.elemj+1 = L.elemjL.elemi-1 = e;+L.length;return OK;/*判斷順序表是否為空元素依次往后移覆蓋,實現(xiàn)刪除*int ListEmpty(SqList &L)return (L.length = 0);/* 獲取順序表長度 */ int getList_Len(SqList &L)return L.length;/*取出對應下標元素*int getIndex(SqList L,char el

6、em)int index = 0;while(index<L.length )判斷元素是否相當找到元素并返回下標/否則返回錯誤if( L.elemindex = elem) return index+1;index+;return ERROR;/*根據(jù)下標取出對應的元素*/ int LocateElem(SqList L,int index)int i = 0;if(index >=L.length | index<1)printf("下標越界,無法查詢!");return ERROR;return L.elemindex-1;/*刪除指定位置的元素值*/

7、 int DleteElem(SqList &L,int n) int j;if(n>L.length | n<1)return ERROR;for(j = n-1;j<L.length;j+) L.elemj = L.elemj+1;return OK;產(chǎn)* 輸出順序表的容 *void DisPlay_SqList(SqList L)int i;if(ListEmpty(L)return ;for(i=0;i<L.length;i+)printf("%4c”,L.elemi);printf("n");/* 主函數(shù) */int ma

8、in()SqList L;/定義一個順序表對象ElemType e,elem;int index;int length = 0;InitSq_List(L);printf("初始化順序表:n");GreatSqList(L,5);printf("順序表 L 為:");DisPlay_SqList(L);length = getList_Len(L);printf("順序表的長度為:%dn",length);if(ListEmpty(L)printf("順序表為空!n");elseprintf("順序表不為空! n");elem = LocateElem(L,1);e = LocateElem( L, 4);printf("第四個元素為:%cn",e);index = getIndex(L,elem);printf("元素 %c 的位置是第 %d 個n",elem,index);printf("在第三個位置插入元素f:&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論