• 2022-10-26
    有一个线性表(a ,a ,…,a ),其中 n≥2,采用带头结点的单链表存储,头指针[br][/br]1[br][/br]2[br][/br]N[br][/br]为 L,每个结点存放线性表中一个元素,结点类型为(data,next),现查找某个元素值等[br][/br]于 x 的结点指针,若不存在这样的结点返回 NULL。分别写出下面 3 种情况的查找语句。[br][/br]要求时间尽量少。[br][/br](1线性表中元素无序。[br][/br](2线性表中元素按递增有序。[br][/br](3线性表中元素按递减有序。
  • (1元素无序时的查找语句如下:[br][/br]P=L->next;[br][/br]While (p!=NULL && p->data!=x)[br][/br]P=p->next;[br][/br]If (p==NULL) return NULL;[br][/br]Else return p;[br][/br](2元素按递增有序时的查找语句如下:[br][/br]P=L->next;[br][/br]While (p!=NULL && p->data[x )next;[br][/br]If (p==NULL || p->data>x) return NULL;[br][/br]Else return p;[br][/br](3元素按递减有序时的查找语句如下:[br][/br]P=L->next;[br][/br]While (p!=NULL && p->data>x)[br][/br]P=p->next;[br][/br]If (p==NULL || p->data[x) return NULL;

    举一反三

    内容

    • 0

      若线性表最常用的操作是存取第i个元素及其前驱的值,则采用( )存储方式节省时间。 [br][/br] [br][/br](单选题) A: 顺序表 B: 单链表 C: 单循环链表 D: 双链表

    • 1

      下列条件中:[br][/br](1)行列式主对角线上的元素全为零;[br][/br](2)三角形行列式主对角线上有一个元素为零;[br][/br](3)行列式零元素的个数多于n个;[br][/br](4)行列式非零元素的个数小于n个,[br][/br]使得n(n>2)阶行列式的值必为零是________. A: (1)或(2) B: (1)或(3) C: (2)或(3) D: (2)或(4)

    • 2

      算法设计:设计一个算法,通过一趟遍历在单链表中确定值最大的结点。[br][/br][算法描述][br][/br]DataType Max (LinkList *L )[br][/br]{[br][/br] if(L->next==NULL) [br][/br]return NULL;[br][/br] pmax=L->next; //假定第一个结点中数据具有最大值[br][/br]____空1____; [br][/br] while(p != NULL )[br][/br]{//如果下一个结点存在[br][/br] if(p->data > pmax->data) [br][/br]____空2____; //如果p的值大于pmax的值,则重新赋值[br][/br] p=p->next;//遍历链表[br][/br] }[br][/br] return pmax->data;[br][/br]}

    • 3

      将n(n≥1)个结点组织成何种形态的二叉排序树时,对其查找时的时间复杂度最佳?[br][/br][br][/br]

    • 4

      在一个单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行(<br/>)。 A: q-&gt;<br/>next = p-&gt;next;p-&gt;next<br/>= q; B: p-&gt;next<br/>= q-&gt;next;q<br/>= p; C: q-&gt;next<br/>= p-&gt;next;p<br/>= q; D: p-&gt;next<br/>= q-&gt;next;q-&gt;next<br/>= p;