试写一个插人算法int insertPost_seq(palist,p,x),在palist所指顺序表中,下标为p的元素之后,插入
试写一个插人算法int insertPost_seq(palist,p,x),在palist所指顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志。
试写一个插人算法int insertPost_seq(palist,p,x),在palist所指顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志。
第1题
写一个算法:int isEmptyStack_seq(PSeqStack pastack),判断pastack所指的栈是否为空栈。
第2题
写一个递归方式的选择排序算法。 非递归选择排序算法如下: void selectionSort(int list[],int last){ int current; int smallest; int holdData; int walker; for(current=0;current<last;current++){ smallest=current; for(walker=current+1;walker<=last;walker++) if(list[walker]<list[smallest])smallest=walker; holdData=list[current]; list[current]=list[smallest]; list[smallest]=holdData; } return; }
第3题
已知k1,k2,…,kn是堆,试写一算法将k1,k2,…,kn,kn+1调整为堆。再用此思想写一个从空堆开始,一个一个添入元素的建堆算法。
第7题
假设一个有向图G已经以十字链表形式存储在内存中,试写一个判断该有向图中是否有环路(回路)的算法。【中科院研究生院2005五(15分)】【东南大学2005数据结构部分五(15分)】
第8题
当一棵有n(0<=100)个结点的二叉树按顺序存储方式存储在bf[1..n]中时,试写一个算法,求出二叉树中结点值分别为x和y的两个结点的最近的公共祖先结点的值。【同济大学2003四(10分)】【武汉大学2000五】
第9题
第10题
双端队列(duque)是一个可以在任一端进行插入和删除的线性表。现采用一个一维数组作为双端队列的数据存储结构,使用c语言描述如下: deftne maxsize 32{数组中可容纳的元素个数} typedef struct { datatype elem[maxsize]; int endl,end2; }duque; 试编写两个算法add(duque QU,datatype x,int tag)和delete(duque QU,datatype&x,int tag)用以在此双端队列的任一端进行插入和删除。当tag=0时在左端endl端操作,当tag=1时在右端end2端操作。
第11题
试写一算法,判断以邻接表方式存储的有向图中是否存在由顶点vi到顶点vi的路径(i≠j)。注意:算法中涉及的图的基本操作必须在存储结构上实现。