用单链表存储线性表,每个结点需要两个域,一个是数据域,另一个是()。
在单链表中,每个节点有两个域:()和指针域。
WORD中当将两个表格之间的文字或回车符删除后,两个表会()。
下列两个数据库表中,“雇员号”是雇员信息表的主键,“部门号”是部门信息表的主键,也是雇员信息表的外键。则部门信息表中的()是可以被删除的。
在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。
用单链表存储线性表,每个结点需要两个域,一个是(),另一个是指针域。
设P1和P2是两个单链表,他们的元素都递增有序,指出下面函数F的功能。https://assets.asklib.com/images/image2/2017111417283099158.jpg
函数实现单链表的删除算法,请在空格处将算法补充完整。int ListDelete(LinkList L,int i,ElemType *s){LNode *p,*q;int j;p=L;j=0;while(((1) )&&(jnext;j++;}if(p->next==NULLj>i-1) return ERROR;q=p->next; (2);*s=q->data;free(q);return OK;}/*listDelete*/
1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。 //将合并逆置后的结果放在C表中,并删除B表 StatusListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C) { LinkList pa,pb,qa,qb; pa=A; pb=B; qa=pa; //保存pa的前驱指针
1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。 //将合并逆置后的结果放在C表中,并删除B表 StatusListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C) { LinkList pa,pb,qa,qb; pa=A; pb=B; qa=pa; //保存pa的前驱指针
37、两个表长都为n、不带表头结点的单链表,结点类型都相同,头指针分别为h1与h2,且前者是循环链表,后者是非循环链表,则 _______。
设A和B是两个单链表,其表中元素有序递增。请分析算法的时间复杂度。其时间复杂度为(40)。A.O(re+n-1
有一个由整数元素构成的非空单链表A,设计一个算法,将其拆分成两个单链表A和B,使得A单链表中含有所有的偶数结点,B单链表中含有所有的奇数结点,且保持原来的相对次序。
两个指针P和Q,分别指向单链表的两个结点,P是Q的前驱结点的条件是()。
将长度分别为m,n的两个单链表合并为一个单链表的时间复杂度为O(m+n)。()
13、以下算法是删除带头结点单链表L中的最小的元素,横线处应填入的语句是()。 void DelMinNode(LinkList L) { p=L->next; pre=L; if(L==NULL) return; while(p->next!=NULL) //pre指向最小元素的前驱元素,开始默认第一个结点最小,pre指向头结点 { if(p->next->data < pre->next->data) pre=p; } //删除pre后面的结点 p=pre->next; ; }
根据一个结点数据类型为整型的单链表生成两个单链表,使得第一个单链表中包含原单链表中所有数据值为奇数的结点,并使得第二个单链表中包含原单链表中所有数据值为偶数的结点,原有单链表保持不变。
4、假设在长度大于1的循环单链表中,既无头结点也无头指针,p为指向该链表中某个结点的指针,编写一个算法删除该结点的前驱结点
待排序数据元素以单链表方式存储,完成下列基于单链表的简单选择排序算法。 单链表结点结构体定义如下: typedef struct node{ int key; //简单起见,只定义排序关键字且为整数 struct node* link; //指针域 }Node; void SelectSort(Node *first) { Node * small, p, q; int temp; for (p=first; (1) ; (2) ){ small=p; for (q=p->link; q!=NULL; q=q->link) // 找最小值 if ((3) ) // small=q; //元素值交换 temp = p->data; (4) ; (5) ; } }
判断题 1 一个无向图的邻接表不是唯一的; 2 一个无向图的逆邻接表不是唯一的; 3 一个无向图的邻接矩阵是唯一的; 4 一个无向图的邻接矩阵一定是对称矩阵; 5 一个有向图的邻接矩阵不是唯一的; 6 一个有向图的邻接矩阵一定是对称矩阵; 7 一个有向图的邻接表不是唯一的; 8 一个有向图的逆邻接表不是唯一的; 9 一个无向连通图的连通分量是它自身; 10 一个无向非连通图的连通分量至少有两个; 11 一个有向连通图的连通分量是它自身; 12 一个有向非连通图的连通分量至少有两个; 13 从无向连通图的某一顶点出发DFS是唯一的; 14 从无向连通图的某一顶点出发BFS是唯一的; 15 从无向连通图邻接表某一顶点出发DFS是唯一的; 16 从无向连通图邻接表某一顶点出发BFS是唯一的; 17 普利姆算法、克鲁斯卡尔算法对象是可以是任何无向连通图; 18 普利姆算法适用于稠密图, 克鲁斯卡尔算法适用于稀疏图
2、已知指针p指向单链表L中的某结点,则删除其后继结点的语句是:________
在一个单链表中删除p所指向结点的后继结点时,其算法的时间复杂度为()。
7、下面的算法功能是逆置单链表,在 处填上合适的语句。 void Inversion(Link L) { p=L->next; L->next=null; while p { q=p; p=p->next; L->next=q; } }
7、将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度是