题目
[主观题]
【论述题】试编写在带头结点的单链表L中删除(一个)最小值结点的(高效)算法。
答案
/删除最小值结点 public void delMin() { Node<T> p=head,q=head.next,p1=null,q1=null; if(!isEmpty()){ T min=q.data; while(q!=null){ //从第一个位置的值开始比较到最后一个位置,定位最小值位置 if(((Comparable)min).compareTo(q.data)>0){ min=q.data; p1=p; //最小值的前一个位置 q1=q; //最小值的位置 } p=q; q=q.next; } p1.next=q1.next; //删除q1最小值位置 } length--; }
更多“【论述题】试编写在带头结点的单链表L中删除(一个)最小值结点的(高效)算法。”相关的问题
第1题
【论述题】设有一个带头结点的单链表,其结点的数据值均为正整数,编写完成下列功能的算法: (1)找出最小值结点,且输出该数值; (2)若该数值是奇数,则将其与直接后继结点的数值交换; (3)若该数值是偶数,则将其直接后继结点删除。
点击查看答案
第2题
在一个长度为n(n>l)的带头结点的单链表L上,另设有尾指针r(指向尾结点),执行()操作与链表的长度有关。
A.删除单链表中的第一个元素
B.删除单链表中的尾结点
C.在单链表第一个元素前插入一个新结点
D.在单链表最后一个元素后插入一个新结点
点击查看答案
第3题
在带头结点的单链表L中,删除所有值为x的结点,假设值为x的结点不唯一,试编写算法以实现上述操作。
点击查看答案
第4题
在一个长度为n(n>1)的带头结点的单链表h上,另设有尾指针r(指向尾结点),执行以下 操作与链表的长度有关。
A.删除单链表中的第一个结点
B.删除单链表中的最后一个结点
C.在单链表第一个结点前插入一个新结点
D.在单链表最后一个结点后插入一个新结点
点击查看答案
第5题
【论述题】对线性表L=(a1...an) (1)如L为顺序表,请设计算法将L就地逆置。 (2)若L为带头结点的单链表,设计算法将L就地逆置。
点击查看答案
第6题
假设在长度大于1的循环单链表中,既无头结点也无头指针,p为指向该链表中某个结点的指针,编写一个算法删除该结点的前驱结点。
点击查看答案
第7题
假设带头结点的单链表L是升序排列的,将值为x的结点插入到链表L中,并保持链表有序性。
点击查看答案
第8题
在一个长度为n(n>1)的带头结点的单链表h上,另设有尾指针r(指向尾结点),执行 操作与链表的长度有关。
A.删除单链表中的第一个元素
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
点击查看答案
第9题
若某线性表最常用的操作是在表尾结点之后插入新结点和删除表头结点,则采用()存储方式最节省时间。
A.仅有头指针的循环单链表
B.仅有尾指针的循环单链表
C.带头结点的单链表
D.带头结点的双向循环链表
点击查看答案
第10题
试写一算法将单链表中所有值为x的结点删除,返回被删除结点的个数,假设单链表中数据元素类型为整型。
点击查看答案