带头结点的单链表上将后k个结点变换为前k个结点的操作

来源:互联网 发布:家装网络销售好做吗 编辑:程序博客网 时间:2024/05/31 15:18


写出单链表的类型定义。然后编写一个函数,实现在带头结点的单链表上将后k个结点变换为前k个结点的操作。
 例如:若表中原来元素为:8 5 6 9 7 4 3  设k=3,则变换后为:7 4 3 8 5 6 9

//类型定义typedef struct{ElemType data;struct LNode *next;}LNode, *LinkList;//带头结点的单链表上将后k个结点变换为前k个结点的操作void MoveNodesToHead(LinkList L, int k){LNode *p, *q, *r;p = q = L;while (k--){p = p->next;}while (p->next){p = p->next;q = q->next;}r = q->next;//r为后面第k个节点的头指针q->next = p->next;p->next = L->next;L->next = r;}

阅读全文
0 0