考研专业课自测试题及答案计算机组成原理.ppt
《考研专业课自测试题及答案计算机组成原理.ppt》由会员分享,可在线阅读,更多相关《考研专业课自测试题及答案计算机组成原理.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、顺序存储结构顺序存储结构线性表线性表(List)部分操作的实现部分操作的实现逻辑结构和主要操作逻辑结构和主要操作小结和作业小结和作业逻辑结构逻辑结构Da1,a2,ai,anS|ai-1,ai D,i=2,.,n 主要操作主要操作InitList(&L)DestroyList(&L)ClearList(&L)ListInsert(&L,i,e)ListDelete(&L,i,&e)LocateElem(L,e,Compare()GetElem(L,i,&e)PriorElem(L,cur_e,&pre_e)NextElem(L,cur_e,&next_e)ListEmpty(L)ListLeng
2、th(L)顺序存储结构顺序存储结构 用一组地址连续地址连续的存储单元依次存放依次存放线性表中的数据元素 a1 a2 ai-1 ai an线性表的起始地址(基地址)定义数据类型定义数据类型 SqList#defineLIST_INIT_SIZE 100#defineLISTINCREMENT10typedefstructElemType*elem;intlength;intlistsize;SqList;使用使用 SqListSqListL;Lelemlengthlistsizeint a;elemlength=6listsize=100L使用使用 SqList部分操作的实现部分操作的实现Ini
3、tList(&L)DestroyList(&L)ListInsert(&L,i,e)ListDelete(&L,i,&e)GetItem(L,i,&e)ListMerge(&La,Lb)ListMerge(La,Lb,&Lc)InitList功能功能过程:1、申请存储空间,首地址存放到elem2、length=03、listsize=LIST_INIT_SIZE原型:Status InitList(SqList&L)作用:给elem,length和listsize赋值LInitList功能功能 0100elemlengthlistsizeInitList-申请内存申请内存elem=(ElemT
4、ype*)malloc(LIST_INIT_SIZE*sizeof(ElemType)#include 0elem1100elem没有获得内存,出错InitListStatus InitList(SqList&L)L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!L.elem)return(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;return(OK);DestroyList功能功能过程:1、释放elem指示的连续存储单元2、L.length=03、L.listsize=
5、0原型:Status DestroyList(SqList&L)作用:释放L以前申请的内存LDestroyList功能功能 610000DestroyListStatus DestroyList(SqList&L)free(L.elem);L.length=0;L.listsize=0;return(OK);GetIem功能功能过程:1、判断i的合法性2、e=ai原型:Status GetItem(SqList L,int i,ElemType&e)作用:取出ai的值GetItem功能功能L10100a1a2a3a4a5a6a7a8a9a10GetItem(L,6,e)eGetIem合法性判断
6、合法性判断线性表中L有length个元素 a1 a2 a3 .alength数据元素的下标为1,2,length1ilengthGetItemai的位置的位置a1a2a3a4a5a6a7a8a9a10数据元素elema1 elem+0a2 elem+1a3 elem+2ai elem+i-1e=*(elem+i 1)GetItemai的位置的位置a1a2a3a4a5a6a7a8a9a10数据元素elem0a1 elem0a2 elem1a3 elem2ai elem i 1e=elem i 1elem1elem9GetItemStatus GetItem(SqList L,int i,Elem
7、Type&e)if(iL.length)return(ERROR);e=L.elemi-1;/e=*(L.elem+i 1)return(OK)ListInsert功能功能原型:Status ListInsert(SqList&L,int i,ElemType e)作用:把e插入线性表,作为第i个数据元素ListInsert功能功能逻辑结构的变化 ,(a1,ai-1,ai,an)(a1,ai-1,e,ai,an)ListInsert功能功能存储结构的变化a1 a2 e a3 a4 a5 a6a1 a2 a3 a4 a5 a6 ListInsert(L,3,e)6length7lengthLis
8、tInsert功能功能过程:1、判断i的合法性2、移动3、赋值4、length+ListInserti的合法性的合法性L7100a1a2a3a4a5a6a71i8一般的 1ilength+1ListInsert移动移动a1 a2 e a3 a4 a5 a6a1 a2 a3 a4 a5 a6 6length7lengtha7a6a6a5a5a4a4a3ak+1=akk=length iListInsert移动移动方法一:数组元素j=L.length-1;L.elemi-1=e;ak+1=akk=length iWhile(j=i-1)L.elemj+1=L.elemj;j-;for(int j=
9、L.length;j=i;j+)L.elemj=L.elemj-1;L.elemi-1=e;ListInsert移动移动q=L.elem+(i-1);p=L.elem+L.length-1while(p=q)*(p+1)=*p;p-;方法二:移动指针q指向了aiP开始时指向了alength*q=e;ak+1=akk=length iListInsert移动移动q=L.elem+(i-1);for(p=L.elem+L.length-1;p=q;p-)*(p+1)=*p;*q=e;ListInsert(L,5,66)L.length-10pppq87564266p21 18 30 75 42 5
10、6 87ListInsert移动移动L77a1a2a3a4a5a6a7a1a2a3a4a5a6a7表满的条件?length=listsize10ListInsert移动移动if(L.length=L.listsize)newbase =realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase)return(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;ListInsertStatus ListInsert(SqList&L,int i,ElemType e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 专业课 自测 试题 答案 计算机 组成 原理
限制150内