1、数据结构之线性表与栈和队列一顺序表:1.简要写出在第i个位置插入一个新元素算法思想: 分析:即在第i-1个元素和第i个元素之间插入 插入的步骤:将第i个元素之后的所有元素后移;将新的元素放置 在第i个位置如图: 2.简要写出删除线性表中的第i个元素的算法思想: 分析:即把第i个元素之后的所有元素往前移,也就是第i+1个元 素覆盖掉第i个元素,之后的元素前移如图:有关线性表例题:*在一个长度为n的顺序表(顺序存储的线性表)中,向第i个元素(1=idata(5)比Pa-data(4)大,Pa、P后移;然后比较:pb-data(5)比p-data(4)大,pb-data(5)比pa-data(6)小
2、。此时,把5插入到4和6之间,在插入之前,需先用一个指针指向5,如果没有指向,直接把5插入到4和6之间,则会找不到Lb中的其他元素。过程如图:2.循环链表 如图: :写出判断表尾的条件:p-next=H :写出判断空表的条件:H-next=H3.双向链表: 简要写出在第i个节点插入新元素e的算法思想。 首先找到第i个节点:while(p&jnext;+j; 插入过程如图: 三、栈和队列例题:1.栈的插入和删除在_进行。A.栈顶 B.栈底 C.任意位置 D.指定位置2.将整数1、2、3、4、5依次进栈,最后都出栈,出栈可以在任何时刻(只要栈不空)进行,则出栈序列不可能是_。A.23415 B.54132 C.23145 D.154323.在一个链队列中,若f,s分别为队首、队尾指针,则插入s所指节点的操作为_。A.f-next=s;f=s;B.r-next=s;r=s;C.S-next=r;r=s;D.s-next=f;f=s;4.最大容量为n的循环队列,约定队尾指针是rear,指向队尾元素的下一个位置;队头指针指向队头元素,则队满的条件是_。A.(rear+1)%n=frontB.rear=frontC.rear+1=frontD.(rear-1)%n=front答案:1.A 2.B 3.B 4.A