if(!L)exit(OVERFLOW); L->next=NULL;//先建立一个带头结点的单链表 rearPtr=L;//初始时头结点为尾节点,rearPtr指向尾巴节点 for(inti=1;i<=n;i++){//每次循环都开辟一个新节点,并把新节点拼到尾节点后 curPtr=(LNode*)malloc(sizeof(LNode));//生成新结点 if(!curPtr)exit(OVERFLOW); scanf...
第二章作业说明-带头结点单链表地逆置 //带头结点的单链表就地逆置,很多同学将头结点也移动到了最后//单链表存储结构定义typedefintElemType;//假设元素类型为int,具体应用中需要改写typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;StatusListInverse_L(LinkList&L){LNode*p,*q;p=L->next...
对不带头结点的单链表进行就地逆置。该算法用L返回逆置后的链表的头指针。 void reverse(linklist&L) { p=null;q=L; while(q!=null) { ___;∥暂存后继 q->next=p; p=q; ___;∥待逆置结点 } ___;∥头指针仍为L }相关知识点: 试题来源...
6.问答题试写一算法在带头结点的单链表结构上实现线性表操作Length(L)。 参考答案: 7.问答题试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x) 参考答案: 8.问答题设A=(a1,…,am和B=(b1,…,bn)均为顺序表,Aˊ和Bˊ分别为A和B中除去最大共同前缀后的子表。若Aˊ=Bˊ空表,则A=B;若...
void reverse(LinkList &L)//单链表的就地逆置 { p=L->next; if(p==NULL || p->next==NULL) return OK;//空表和表中只有一个结点时,不用逆置。 while(p->next!=NULL) { q= p->next; p->next=q->next; //删除结点q,但未释放
单链表就地逆置算法C语言版 Status Contrary(LinkList L) LinkList p,q;p=L->next;L->next=NULL;while(p!=NULL){ q=p;p=p->next;q->next=L->next;L->next=q;} return OK;}
1.下面的函数是对不带头结点的单链表进行就地逆置的算法,该算法用L返回逆置后的链表的头指针,试在空缺处填入适当的语句。 voidreverse(linklist&L){ p=null;q=L; while(q!=NULL){①; q->next=p;p=q; ②; } ③; } 2.对单链表中元素按插入方法排序的算法如下,其中L为链表的头结点指针。请填充算法...
void reverse(LinkList &L)//单链表的就地逆置{ p=L->next;if(p=NULL|| p->next=NULL)return OK;//空表和表中只有一个结点时,不用逆置。while(p->next!=NULL){ q= p->next;p->next=q->next; //删除结点q,但未释放 q->next=L->next;L->next=q; //将q插入头结点之...
1、已知有一个单链表(带头结点),其头指针为head,请编写一个函数计算单链表中结点的个数,并分析你的算法的时间复杂度。 2、请编写一个算法,对单链表(带头结点)实现就地逆置(设头指针为head)。 3、二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树的深度。©...
3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。 四、实现提示 1.由于C语言的数组类型也有随机存取的特点,一维数组的机内表示就是顺序结构。因此,可用C语言的一维数组实现线性表的顺序存储。 在此,我们利用C语言的结构体类型定义顺序表: #define MAXSIZE 1024...