试写一算法,对单链表实现就地逆置。数据结构的题目(C语言版的)

试写一算法,对单链表实现就地逆置。
void invert_linkst(LinkList& hlink)
// 逆转以 hlink 为头指针的单链表

小弟谢谢大家了

第1个回答  2007-03-30
算法已经写清楚了,里面的first 就是你传入的hlink

template <class T>
void mylist<T>::Invert()//翻转
{
if ( IsNull() || ncount == 1) return;
listnode<T>* m,* n;
m = first;
while (m!=NULL)
{
listnode<T>* r = n;
n = m;
m = m->link;
n->link = r;
}
first = n;
}本回答被提问者采纳

试写一算法,对单链表实现就地逆置。
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插入头结点之...

试写一算法对单链表实现就地逆置?
void Inverse(LinkList &L){ LNode *p, *q;p = L->next; \/*记录第一个结点地址*\/L->next = NULL; \/*把链表设置成空表*\/while (p != NULL) \/*依次按头插法将各结点插入,就实现了逆置*\/{q = p; \/*用q记录待插入结点地址*\/p = p->next; \/*用p记录待插入结...

数据结构问题 C语言解答 线性表的就地逆置
\/\/逆置顺序表中的元素的算法void SeqListReverse(SeqList *L){int temp,i;for(i=0;i<L->length\/2;i++){temp=L->data[i];L->data[i]=L->data[L->length-1-i];L->data[L->length-1-i]=temp;}}\/*逆置单链表中的元素的算法*\/void LinkedListReverse(LinkedList L)\/\/其中LinkedLis...

试写一算法,对单链表实现就地逆置,即利用原表的存储空间将线性表 (a1...
return 1;}

试写一算法,对单链表实现就地逆置。 啥意思???
可理解成,将原来单链表的结点取下来,采用单链表的头插法,插入头结点之后。当完成后,最后一个结点变成首元结点,原来的首元结点变成最后一个结点,其他的依次类推。

试写一算法,实现顺序表的就地逆置?
算法实现如下: void reverse(int a[], int size) { int tmp; for (int i = 0; i < size\/2; ++i) { tmp = a[i]; a[i] = a[size-1]; a[size-1] = tmp; } } C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生...

...用c语言编写的对不带头结点的单链表进行就地逆置的算法,求大神详细...
void reverse(linklist &L){ linklist p = NULL, q = L; while(q != NULL){ L = q->next; \/\/ 保留下一个节点 q->next = p; p = q; q = L; \/\/ 移动到下一个节点 } L = p; \/\/ 指向逆置后的头节点} ...

什么叫单链表就地逆置?
1、单链表就地逆置是一种算法。2、如果是顺序存储的话,我们很容易想到解题思路,利用1个辅助变量让第1个元素与第n个元素交换,然后再利用这个辅助变量让第2个元素与第n-1个元素交换,...最后利用这个辅助变量让第n\/2个元素与第n+1-n\/2个元素交换。3、如果不要求“就地”的话,可以创建一个n个...

写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1...
n->next=m;m=n;n=r;} n->next=m;L->next->next=NULL;L->next=n;b=L->next;printf("\\n\\n逆置之后链表中的元素为:\\n");while(b){ printf("%d, ",b->data);b=b->next;} printf("\\n");return 0;} c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!!!

单链表就地逆置有几种方法
单链表就地逆置的两种(递归与普通循环)1.用递归算法,对于不带头结点的单链表(a1,a2,a3,a4,a5,a6)逆置后的结果为(a6,a5,a4,a3,a2,a1)考虑递归算法,若只有一个结点,则直接返回,若存在两个结点(a1,a2)则需要做的操作有:a2->next=a1;a1->next=NULL;return a2;a2即新的头结点,若有...

相似回答