(笔记,如侵删)
线性表-----------基础知识+算法设计
栈和队列-----------栈和队列的结构属性;两种存储结构上,栈和队列的基本操作;栈和队列在程序设计中的应用。
基础知识题:
题目
答案1. (1)Q指向7这个结点
(2)L指向7这个结点
(3)R的data变成了5
(4)R的data成了7
(5)5赋给S的data
(6)把链表的没一个节点都乘以2
(7)除了最后一个元素之外的元素乘以2
2.P是中间的某一个元素。(单链表的缺点,不知道P的前一个结点是哪个)
(1) S->next = P->next;P->next = s
(2) S->next = p;
r=l;
while(r->next!=p); r=r->next;(循环结束的时候,r得next等于P)
r->next=S;//单链表在某个节点之前找不到,必须挨个找
(3) 表的首部,在第一个结点前边插入。
L=S-next; S=L;
(4)S->next =NULL;
循环语句找最后一个节点r
r=l;
while(r->next !=NULL);R=R->NEXT;
r->next=s;
3. 假设L是一个循环链表
while循环让p移到s之前;
s和q的前一个元素构成了循环链表。
(pa pb)pb断开,pa自己构成了循环链表。
(pb pa )pa断开,pb自己构成了循环链表。
算法设计题:
线性表的类型定义;
4.解:
Status LL_DEL(LinkList &L,ElemType mink,ElemType maxk)
{
//删除大于mink小于maxk的所有元素,L是带头结点的单链表
P = L;
while(p->next !=NULL && P->next->data <=mink)
P = P->next;
if(P->next = NULL) return error;(!P->next)
Q= P->next;
while(!Q && Q->data < mark){
P -> next = Q->next;free(Q);Q=P->next;
}
}//LL_DEL;