更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
已知一个带权无向图有6个顶点A, B, C, D, E, (含图) 请根据邻接矩阵画出该带权无向图; 利用克鲁斯卡尔算法构建该图的最小生成树,写出具体过程。 (1) (含图) (2)以a到f步骤依次找到图的最小生成树: (含图) 编程题 (1)单链表删除。对于带结点的单链表L,设计算法删除单链表中所有值为x的节点。 voi LNod whil i q = p; pre->next = p->next; p = p->next; free(q); } els pr p = p->next; } } } (2)快速排序。使用快速排序算法实现一个函数对整数数组 arr 进行升序排序。函数参数为数组和数组长度。 // 分区函数:返回基准元素最终位置 iint partition(int arr[], int low, int hig int pivot = arr[low]; whil whil high--; } arr[low] = arr[high]; whil low++; } arr[high] = arr[low]; } arr[low] = pivot; return low; } // 快速排序主函数 voi i return; } int pivotIndex = partition(arr, 0, lengt quickSort(arr, pivotIndex); quickSort(arr + pivotIndex + 1, lengt } (3)设计算法合并两个递增有序的单链表,结果仍递增有序。 LinkList MergeList(LinkList La, LinkList L LinkList L LNod whil i pc->next = La; L } els pc->next = Lb; L } p } pc->next = L return Lc->next; } (4)插入排序算法。设计直接插入排序算法,并对给定数组进行排序。 voi { for (int i = 1; i < n; i++) { int temp = arr[i]; int j = i - 1; whil arr[j + 1] = arr[j]; j--; } arr[j + 1] = temp; } } (5)设计一个递归算法,统计二叉树中叶子结点个数。 int CountLeaf(BiTre i i return 1; els } (6)栈实现括号匹配。设计算法,利用顺序栈判断字符串 str 中的括号 {}、[]、() 是否匹配,匹配返回 OK,否则返回 ERROR。 bool BracketMatch(char *exp) { Stack S; InitStack(&S); for (int i = 0; exp[i] != '\0'; i++) { i Push(&S, exp[i]); } els i char top = Pop(&S);