试写一算法,对单链表实现就地逆置。分析:将单链表就地逆置,即不另外开辟结点空间,而将链表元素翻转顺序。
试写一算法,对单链表实现就地逆置。 答案 以单链表作存储结构进行就地逆置的正确做法应该是:将原链表中的头结点和第一个元素结点断开(令其指针域为空),先构成一个新的空表,然后将原链表中各结点,从第一个结点起,依次插入这个新表的头部(即令每个插人的结点成为新的第一个元素结点)。相关推荐 1试写一算法,对...
题目 试写一算法,对单链表实现就地逆置。 相关知识点: 试题来源: 解析[答案]: void Reverse(List &L) { Node *p=L.first->next->next;//p指向第2个结点 Node *q; Node *t=L.first->next; //t指向第1个结点 while(p){ //从第2个结点,将每个结点依次逆置...
试写一个算法,实现单链表的就地逆置,即利用原表的存储空间将线性表逆置为 单链表结点的类型定义如下:typedef struct node { /*
(a1,a2,…,an)逆置为(an,an-1,…,a1) 提示:将原链表中的头结点和第一个元素结点断开(令其指针域为空),先构成一个空表,然后将原链表中各结点从第一个结点起依次插入这个新表的头部。 相关知识点: 试题来源: 解析 答:void LinkList_reverse(Linklist &L)//链表的就地逆置;为简化算法,假设表长大于...
试写一算法,对单链表表示的线性表(a0,a1,...an-1)实现就地逆置。假设表长大于2。所谓"就地"指辅助空间应为O(1),单链表定义如下: Typedef struct LNode { ElemType data; // 数据域 struct Lnode *next; // 指针域 } LNode, *LinkList; 函数头定义为: void invert_linkst(LinkList *hlink) // ...
// 带头结点的单链表的逆置Status ListOppose_L(LinkList &L){\x05LinkList p,q;\x05p=L;\x05p=p->next;\x05L->next=NULL;\x05while(p){\x05\x05q=p;\x05\x05p=p->next;\x05\x05q->next=L->next;\x05\x05L->next=q;\x05}\x05return OK;} 2试写一算法,对单链表实现就地...
试写一算法,对单链表实现就地逆置。 正确答案 答案解析 略 真诚赞赏,手留余香 小额打赏 169人已赞赏
//建立链表 int initlist(list *l){ int i=0,x;l->elem=(elementype *)malloc(sizeof(elementype));if(!l->elem){ cout<<"建立链表失败"<<endl;return 1;} l->length=0;l->listsize=MAXSIZE;while(1){ cout<<"请输入链表数据:";cin>>x;if(x==0) break;l->elem[i]=x;...
答案解析 查看更多优质解析 解答一 举报 可理解成,将原来单链表的结点取下来,采用单链表的头插法,插入头结点之后.当完成后,最后一个结点变成首元结点,原来的首元结点变成最后一个结点,其他的依次类推. 解析看不懂?免费查看同类题视频解析查看解答 相似问题 编写一算法,实现单链表的原地逆置. 以单链表为存储结构...