更多“设计一个算法,通过一趟遍历在单链表中确定值最大的结点。 ”相关问题
  • 第1题:

    单链表算法设计:输出带头结点单链表中所有元素的值


    Void CreateLink_List(LinkList &L,int n) { //逆序创建,依次输入元素an,an-1,...a1 L=(LinkList)malloc(sizeof(LNode)); //头结点 L->next=NULL; for(i=n;i>0;i--) { p=(LinkList)malloc(sizeof(LNode)); scanf(&p->data); p->next=L->next; L->next=p; } } // 输入元素的次序与单链表的逻辑顺序相反,称逆序。

  • 第2题:

    编写算法,删除某无序单链表中,结点值最大的结点。


    Status ListDelete_L(LinkList &L,int i, Elemtype &e){ //delete No.i node in Linklist L with head node p=L;j=0; while(p&&jnext;j++;} //to find prior node of No.i if(!(p->next)||j>i-1) return ERROR; // ilength q=p->next; //q point to delete i node p->next=q->next; // delete i node e=q->data; //return value of node i free(q); // free deleted node return OK;} //listDelete_L

  • 第3题:

    (教材P73习题14)设计一个算法,在带头结点的非空单链表L中的第一个最大值结点(最大值可能有多个)之前插入一个值为x的结点。(提示:仿照教材P53例2.7)。 void InsertBeforeX(LinkNode *&L, ElemType x)


    Sub 标记奇数() Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 x = Int(Rnd() * 900 + 100) Cells(i, j).Clear Cells(i, j).Value = x If x Mod 2 = 1 Then Cells(i, j).Interior.Color = vbYellow Cells(i, j).Font.Color = vbRed End If Next j Next iEnd Sub

  • 第4题:

    在具有n个结点的单链表中,实现下列哪个操作,其算法的时间复杂度是O(n)?

    A.在地址为p的结点之后插入一个结点

    B.删除开始结点

    C.遍历链表和求链表的第i个结点

    D.删除地址为p的结点的后继结点


    遍历链表和求链表的第i个结点

  • 第5题:

    计一个算法,通过遍历一趟,将带头结点链表中所有结点的链接方向逆转,仍利用原表的存储空间。 [题目分析] 从首元结点开始,逐个地把链表L的当前结点p插入新的链表头部。 void inverse(LinkList &L) {……}


    void inverse(LinkList &L){// 逆置带头结点的单链表 Lp=L->next; L->next=NULL;while ( p) {q=p->next; // q指向*p的后继p->next=L->next;L->next=p; // *p插入在头结点之后p = q;}}