随笔分类 -  数据结构题集

摘要:假设以顺序存储结构实现一个双向栈,即在一维数组的存储空间中存在着两个栈,它们的栈底分别设在数组的两个端点。试编写实现这个双向栈tws的三个操作:初始化inistack(tws)、入栈push(tws,i,x)和出栈pop(tws,i)的算法,其中i为0或1,用以分别指示设在数组两端的两个栈.C code:#include<stdio.h>#include<stdlib.h>#defineOK1#defineOVERFLOW-1#defineERROR1typedefintStatus;typedefstruct{int*base[2];int*top[2];}BDSta 阅读全文
posted @ 2011-05-05 22:06 iwuyudong 阅读(953) 评论(0) 推荐(0) 编辑
摘要:已知A,B和C为三个递增有序的线性表,现要求对A表作如下操作:删去那些既在B表中出现又在C表中出现的元素。试对顺序表编写实现上述操作的算法.(注意:题中没有特别指明同一表中的元素值各不相同)。C code:#include<stdio.h>#include<stdlib.h>#defineLIST_INIT_SIZE10#defineLIST_INCREMENT2#defineERROR0#defineOK1#defineOVERFLOW-1#defineTRUE1typedefintStatus;structSqList{int*elem;intlength;intl 阅读全文
posted @ 2011-05-03 23:46 iwuyudong 阅读(846) 评论(0) 推荐(1) 编辑
摘要:假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表C,其元素为A和B中元素的交集,且表C中的元素有依值递增有序排列。试对顺序表编写求C的算法。C code:#include<stdio.h>#include<stdlib.h>#defineLIST_INIT_SIZE10#defineLIST_INCREMENT2#defineERROR0#defineOK1#defineOVERFLOW-1#defineTRUE1typedefintStatus;structSqList{int*elem;intl 阅读全文
posted @ 2011-04-28 23:48 iwuyudong 阅读(317) 评论(0) 推荐(0) 编辑
摘要:设线性表A=(a1,a2……,am),B=(b1,b2……,bn),试写一个按下列规则合并A,B为线性表C的算法,即使得C=(a1,b1,……am,bm,……bn) 当m<=n时;C=(a1,b1,……an,bn,……am) 当m>n时;C code:#include<stdio.h>#include<stdlib.h>#defineLIST_INIT_SIZE10#defineLIST_INCREMENT2#defineERROR0#defineOK1#defineOVERFLOW-1#defineTRUE1typedefintStatus;structS 阅读全文
posted @ 2011-04-28 01:42 iwuyudong 阅读(501) 评论(0) 推荐(0) 编辑
摘要:已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试写一算法将这两个链表连接在一起,假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。C code:#include<stdio.h>#include<stdlib.h>#defineLIST_INIT_SIZE10#defineLIST_INCREMENT2#defineERROR0#defineOK1#defineOVERFLOW-1#defineTRUE1typedefintStatus;structLNode{intdata;LNode*next;};ty 阅读全文
posted @ 2011-04-27 23:37 iwuyudong 阅读(339) 评论(0) 推荐(0) 编辑
摘要:1、试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x)2、试写一算法在带头结点的单链表结构上实现线性表操作Length(L)C code:#include<stdio.h>#include<stdlib.h>#defineERROR0#defineOK1#defineOVERFLOW-1#defineTRUE1typedefintStatus;structLNode{intdata;LNode*next;};typedefLNode*LinkList;voidInitList(LinkList&L){L=(LinkList)malloc(si 阅读全文
posted @ 2011-04-27 20:59 iwuyudong 阅读(374) 评论(0) 推荐(0) 编辑
摘要:设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。算法:StatusInsert_Sqlist(SqList&va,intx){inti;if(va.length+1>va.listsize)returnERROR;va.length++;for(i=va.length-1;va.elem[i]>x&&i>=0;i--)va.elem[i+1]=va.elem[i];va.elem[i+1]=x;returnOK;}C code:#include<stdio.h>#include<stdl 阅读全文
posted @ 2011-04-27 17:57 iwuyudong 阅读(423) 评论(0) 推荐(0) 编辑