赞
踩
循环链表,判断循环链表是否为空 指向的是自己
仅设表尾指针的循环链表合并
&L 因为L会发生变化 & 引用
在 C 语言中,参数传递不支持引用(&)的方式,应该使用指针来传递参数
ElemType Del_Min(SqList *L)
数组的赋值不能使用 = 直接赋值整个数组。需要逐个赋值数组的元素,或者使用循环来初始化数组
- #include <stdio.h>
- #include <stdlib.h>
-
- #define MaxSize 10
- #define ElemType int
-
- //定义线性表的最大长度
-
- typedef struct{
- ElemType data[MaxSize];
- int length;
- }SqList;
-
- ElemType Del_Min(SqList *L){
- ElemType value;
-
- if(L->length == 0)
- return -1;
-
- value = L->data[0];
- int pos = 0;
- for(int i = 1; i < L->length; i++){
- if(L->data[i] < value){
- pos = i;
- value = L->data[i];
- }
- }
-
- L->data[pos] = L->data[L->length - 1];
- L->length--;
-
- return value;
- }
-
- int main()
- {
- SqList L;
- int arr[] = {5, 2, 3, 4, 1};
- for(int i = 0; i < 5; i++){
- L.data[i] = arr[i];
- }
- L.length = 5;
-
- ElemType a = Del_Min(&L);
- printf("%d\n", a);
- printf("Hello world!\n");
- return 0;
- }
第二步中L->next为空 L->next相当于链表的尾指针 最后一个结点(我认为)
c++写的
习题
访问L.data[i] 和 L.data[i-1]
c选项,删除第一个元素 后面要往前移
插入和删除都是O(n),插入和删除元素时需要移动其他元素来保持顺序表的连续性
排序为O(n^2)或者O(n log n)快排
修改就是查找的功能 用顺序表
存储密度
选n 第一个表的所有元素 都小于 第二个表的第一个元素
需要移动 i , i+1, ... n
c选项的第三个 ,是p->next就是p和q后面的那个,修改它的前驱指向q
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。