用c语言实现单链表的逆置,能将此程序详细的解释一下吗?
while(s->next!=NULL)\/\/只要没有到最后一个元素就继续。最后一个元素的next肯定为NULL { \/\/进入核心了楼主 t=s->next; \/\/用t指向s后面的那个元素 s->next=p; \/\/把s指向她前面那个,这个时候就实现了逆向了。而且是就地逆向。元素都没有动的 p=s; \/\/然后p向后移动s s=t; \/\/s向后...
数据结构问题 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...
下面是用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; \/\/ 指向逆置后的头节点} ...
...个程序吧,感激不尽啦~创建单链表并实现就地逆置 建立单链表时输入链...
{ printf("%c ",p->a);p=p->next;} }
...带头结点的单链表L存储.设计一算法将其就地逆置...急急急
L=(LinkList)malloc(sizeof(Node)); \/* 产生头结点,并使L指向此头结点 *\/ if(!(*L)) \/* 存储分配失败 *\/ return ERROR;(*L)->next=NULL; \/* 指针域为空 *\/ return OK;} \/* 初始条件:顺序线性表L已存在。操作结果:若L为空表,则返回TRUE,否则返回FALSE *\/ Status ListEmpty(...
数据结构的问题
tmp = A[i]; A[i] = A[n-i-1]; A[n-i-1] = tmp;} } 设有一个表头指针为h的单链表。试设计一个算法,通过遍历一趟链表,将链表中所有结点的链接方向逆转,如下图所示。要求逆转结果链表的表头指针h指向原链表的最后一个结点。 【解答1】template<class Type> void List<Type...
数据结构的问题~
6 试编写算法实现链表的就地逆置(不增加存储空间),即把链表A中的数据元素(a1,a2, …,an)逆置为(an,an-1, …,a1)。 7 假设有两个非递减的线性表A 和B,均采用链式存储结构,试编写算法将A和B 归并成一个按元素非递减的线性表C。 8 试编写算法求单循环链表的表长。 习题3 一、选择题 1在栈顶一端可...