编辑: 阿拉蕾 | 2019-07-07 |
五、算法填空(共2小题,每空2分,共20分) 1. 已知一个顺序存储线性表的元素递增有序排列.下面的算法实现删除该表中值相同的元素.请在_处填上适当内容,使其成为一个完整算法. typedef struct { ElemType *elem;
int length ;
int listsize ;
} SqList;
void dele(SqList &L) { int i=0, j=1;
while ( (1) ) { if ( L.elem[j]!=L.elem[i]) L.elem[++i]= (2) ;
(3) ;
} L.length= (4) ;
} 2. 下面算法是用Dijkstra算法求有向网G的v0顶点到其余顶点v的最短路径P[v]及其带权长度D[v].若P[v][w]为TRUE,则w是从v0到v当前求得最短路径上的顶点. final[v]为TRUE当且仅当v∈S(S为已求得最短路径的终点的集合), 即已经求得从v0到v的最短路径.请在_处填上适当内容,使其成为一个完整算法. typedef struct ArcCell{ VRType adj;
InfoType *info;
//该弧相关信息的指针 }ArcCell, AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
tpyedef struct{ VertexType vexs[MAX_VERTEX_NUM];
//顶点向量 AdjMatrix arcs;
//邻接矩阵 int vexnum,arcnum;
//图的当前顶点数和弧数 GraphKind kind;
//图的种类标志 }MGraph;
void ShortestPath_DIJ( MGraph G, int v0, PathMatrix &P, ShortPathTable &D) { for (v=0;
v