南审(数据构造课程教学设计)个人讲明任务题目一览(2021年度版).docx
《南审(数据构造课程教学设计)个人讲明任务题目一览(2021年度版).docx》由会员分享,可在线阅读,更多相关《南审(数据构造课程教学设计)个人讲明任务题目一览(2021年度版).docx(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、南审(数据构造课程教学设计)个人讲明任务题目一览(2021年度版)第二章线性表顺序表的操作1、顺序表的建立从键盘或者数组中导入数据StatusInitList(SqList&L)/构造一个空的顺序表L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;returnOK;2、顺序表根据值查找位置intLocateElem(SqListL,ElemTypee)/根据数据元素的值,返回它在线性表L中的位置inti=0
2、;while(iL.length)returnERROR;e=*(L.elem+i-1);returnOK;4、顺序表数据元素的插入StatusListInsert(SqList&L,inti,ElemTypee)/在L中第i个位置之前插入新的数据元素e,L的长度加1ElemType*p,*q,*newbase;if(iL.length+1)returnERROR;if(L.length=L.listsize)newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase)exi
3、t(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;q=&(L.elemi-1);for(p=&(L.elemL.length-1);p=q;-p)*(p+1)=*p;*q=e;+L.length;returnOK;5、顺序表数据元素的删除StatusListDelete(SqList&L,inti,ElemType&e)/删除L的第i个数据元素,并用e返回其值,L的长度减1ElemType*q,*p;if(iL.length)returnERROR;p=&(L.elemi-1);e=*p;q=L.elem+L.length-1;for(+
4、p;pnext=NULL;printf(请输入%d个数据n,n);for(i=n;i0;-i)p=(LinkList)malloc(sizeof(LNode);scanf(%d,&p-data);p-next=L-next;L-next=p;voidCreateList2(LinkList&L,intn)/正位序输入n个元素的值,建立带表头构造的单链线性表inti;LinkListp,q;L=(LinkList)malloc(sizeof(LNode);L-next=NULL;q=L;printf(请输入%d个数据n,n);for(i=1;idata);q-next=p;q=q-next;p-
5、next=NULL;2、单链表的输出Statusvisit(LinkListL)/按序输出单链表的各个元素值LinkListp=L-next;while(p)printf(%d,p-data);p=p-next;printf(n);returnOK;3、单链表结点的插入StatusListInsert(LinkList&L,inti,ElemTypee)LinkListp,s;p=L;intj=0;while(p&jnext;+j;if(!p|ji-1)returnERROR;s=(LinkList)malloc(sizeof(LNode);s-data=e;s-next=p-next;p-n
6、ext=s;returnOK;4、单链表结点的删除StatusListDelete(LinkList&L,inti,ElemTypee)LinkListp,q;p=L;intj=0;while(p-next&jnext;+j;if(!(p-next)|ji-1)returnERROR;q=p-next;p-next=q-next;e=q-data;free(q);returnOK;5、单链表中根据结点的值查找结点的位序intLocateElem(LinkListL,ElemTypee)/返回L中第1个值为e的数据元素的位序,若这样的数据元素不存在,则返回值为0inti=0;LinkListp=
7、L-next;while(p)i+;if(p-data=e)returni;p=p-next;return0;6、单链表中根据结点的位序返回结点的值StatusGetElem(LinkListL,inti,ElemType&e)/L为带头结点的单链表的头指针。当第i个元素存在时,其值赋给e并返回OK,否则返回ERRORintj=1;LinkListp=L-next;while(p&jnext;j+;if(!p|ji)returnERROR;e=p-data;returnOK;7、单链表的初始化新建一个只含头结点的单链表StatusInitList(LinkList&L)/构造一个空的单链表LL
8、=(LinkList)malloc(sizeof(LNode);if(!L)exit(OVERFLOW);L-next=NULL;returnOK;8、单链表的销毁所有结点都要销毁StatusDestroyList(LinkList&L)/销毁单链表LLinkListq;while(L)q=L-next;free(L);L=q;returnOK;9、求单链表的长度intListLength(LinkListL)/返回L中数据元素个数if(L=0)return0;inti=0;LinkListp=L-next;while(p)i+;p=p-next;returni;10、两个单链表的归并void
9、MergeList(LinkList&La,LinkList&Lb,LinkList&Lc)/已知线性表La和Lb中的数据元素按值非递减排列/归并La和Lb得到新的线性表Lc,Lc的数据元素也按值非递减排列LinkListpa,pb,pc;pa=La-next;pb=Lb-next;Lc=pc=La;while(pa&pb)if(pa-datadata)pc-next=pa;pc=pa;pa=pa-next;elsepc-next=pb;pc=pb;pb=pb-next;pc-next=pa?pa:pb;free(Lb);第三章栈和队列栈的操作1、初始化一个顺序栈从键盘或者数组中导入数据Sta
10、tusInitStack(SqStack&S)S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType);if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK_INIT_SIZE;returnOK;2、判定栈能否为空StatusStackEmpty(SqStackS)/若栈S为空栈,则返回TRUE;否则返回FALSEif(S.top=S.base)returnTRUE;elsereturnFALSE;3、取栈顶元素StatusGetTop(SqStackS,SElemType
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南审 数据 构造 课程 教学 设计 个人 讲明 任务 题目 一览 2021 年度
限制150内