66问答网
所有问题
当前搜索:
对单链表实现就地逆置的算法
试写一
算法
,
对单链表实现就地逆置
。
答:
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插入头结点之后 }...
单链表的就地逆置的算法
!!
答:
就地逆置
即
算法
的辅助空间为O(1)。思路为:逆置链表初始为空,表中节点从原链表中依次“删除”,再逐个插入
逆置链表的
表头(即“头插”到逆置链表中),使它成为逆置链表的“新”的第一个结点,如此循环,直至原链表为空。
实现
代码:void converse(LinkList *head) { LinkList *p,*q; p=...
单链表就地逆置
有几种方法
答:
1.用递归算法
,对于不带头结点的单链表(a1,a2,a3,a4,a5,a6)逆置后的结果为(a6,a5,a4,a3,a2,a1)考虑递归算法,若只有一个结点,则直接返回,若存在两个结点(a1,a2)则需要做的操作有:a2->next=a1;a1->next=NULL;return a2;a2即新的头结点,若有三个结点,则应先将子链(a2,a3)先...
什么叫
单链表就地逆置
?
答:
1、
单链表就地逆置
是一种
算法
。2、如果是顺序存储的话,我们很容易想到解题思路,利用1个辅助变量让第1个元素与第n个元素交换,然后再利用这个辅助变量让第2个元素与第n-1个元素交换,...最后利用这个辅助变量让第n/2个元素与第n+1-n/2个元素交换。3、如果不要求“就地”的话,可以创建一个n个...
试写一
算法对单链表实现就地逆置
?
答:
void Inverse(LinkList &L){ LNode *p, *q;p = L->next; /*记录第一个结点地址*/L->next = NULL; /*把
链表
设置成空表*/while (p != NULL) /*依次按头插法将各结点插入,就
实现
了
逆置
*/{q = p; /*用q记录待插入结点地址*/p = p->next; /*用p记录待插入结...
试写一
算法
,
对单链表实现就地逆置
,即利用原表的存储空间将线性表 (a1...
答:
typedef int elementype;define MAXSIZE 100 struct list { elementype *elem;int length;int listsize;};//建立
链表
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->...
写一c语言
算法
,
实现对单链表就地逆置
。
答:
void inverse(LinkList &L){ LinkList h,p,q;q=L;p=h=L->next; //把q指向旧链表头,p,h指向第二个节点 while(p!=NULL) //倒置,把旧链表后一个节点的next指向前一个节点 { h->next=q;q=q->next;p=p->next;h=p;} L->next=NULL; //旧
链表的
头变成了新链表的尾,所以...
关于
单链表的
所有结点
逆置
答:
//
就地逆置单链表
//定义结点数据元素结构体 typedef struct snode { DataType x;struct snode *next;}SLNode;//
逆置算法
void ListReverse(SLNode *head){ int i=-1,j;DataType x;SLNode *p,*q;p=head;while(p->next!=NULL&&i<(ListLength(head)-1)/2){ p=p->next;i++;q=...
4. 试写一
算法
,对带头结点的
单链表实现就地逆置
(假设表长大于2)。_百 ...
答:
假设头结点指针head 尾结点指向空
算法
如下:Node* temp->=head->next;Node* flag=head->next;while(temp){ flag=temp;flag->next=head->next;head->next=flag;temp->next=temp;} 解释看图片(画的不好)
...试写一
算法
,
对单链表实现就地逆置
,即利用原表的存储空间将线性表...
答:
typedef int elementype;define MAXSIZE 100 struct list { elementype *elem;int length;int listsize;};//建立
链表
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->...
1
2
3
4
5
6
7
8
涓嬩竴椤
其他人还搜
将单链表进行倒置的算法
设计算法将单链表L进行逆置
如何逆置单链表
出栈顺序有多少种
单链表反转
二叉树的先序,中序,后序遍历
尾插法建立单链表
单链表尾插法
广义表的表头和表尾怎么看