数据结构与算法分析——C语言描述3.3
2017-12-14 22:33
239 查看
通过只调整指针(而不是数据)来交换两个相邻的元素
//3.3 a.单链表
void OneListSwapByAdd(ElemType B, ElemType C, List L) {
Position a_pos, b_pos, c_pos;
b_pos = Find(B, L);
c_pos = Find(C, L);
a_pos = FindPrevious(B, L);
Position Tmp = (List)malloc(sizeof(Node));
Tmp->next = a_pos->next;
a_pos->next = b_pos->next;
b_pos->next = c_pos->next;
c_pos->next = Tmp->next;
}
//3.3 b.双链表
void TwoListSwapByAdd(ElemType X1, List L, ElemType X2, List P) {
List Tmp = (List)malloc(sizeof(Node));
List a1, b1, a2, b2;
a1 = FindPrevious(X1, L);
a2 = FindPrevious(X2, P);
b1 = Find(X1, L);
b2 = Find(X2, P);
Tmp->next = b1->next;
b1->next = b2->next;
a2->next = b1;
b2->next = Tmp->next;
a1->next = b2;
}
//3.3 a.单链表
void OneListSwapByAdd(ElemType B, ElemType C, List L) {
Position a_pos, b_pos, c_pos;
b_pos = Find(B, L);
c_pos = Find(C, L);
a_pos = FindPrevious(B, L);
Position Tmp = (List)malloc(sizeof(Node));
Tmp->next = a_pos->next;
a_pos->next = b_pos->next;
b_pos->next = c_pos->next;
c_pos->next = Tmp->next;
}
//3.3 b.双链表
void TwoListSwapByAdd(ElemType X1, List L, ElemType X2, List P) {
List Tmp = (List)malloc(sizeof(Node));
List a1, b1, a2, b2;
a1 = FindPrevious(X1, L);
a2 = FindPrevious(X2, P);
b1 = Find(X1, L);
b2 = Find(X2, P);
Tmp->next = b1->next;
b1->next = b2->next;
a2->next = b1;
b2->next = Tmp->next;
a1->next = b2;
}
int main() { List L,P; ElemType a, b; L = CreatedList(); P = CreatedList(); PrintList(L); PrintList(P); printf("请输入需要交换的两个数:"); scanf_s("%d%d", &a, &b); TwoListSwapByAdd(a, L, b, P); PrintList(L); PrintList(P); return 0; }
相关文章推荐
- 队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 《数据结构与算法分析--c语言描述》之第一章:引论
- 优先队列(堆) - C语言实现(摘自数据结构与算法分析 C语言描述)
- 栈及其应用 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 《数据结构与算法分析-C语言描述》详解-Sec2(三)幂指数运算
- 散列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 《数据结构与算法分析--c语言描述》之第一章:引论
- 使用数组实现队列----《数据结构与算法分析---C语言描述》
- 《数据结构与算法分析-C语言描述》第二章部分习题思路
- 《数据结构与算法分析——c语言描述》 练习6.32 答案
- 平方探测法的证明《数据结构与算法分析(C语言描述)第二版》P119
- 数据结构与算法分析(C语言描述)源代码与答案
- 散列-分离链接法(数据结构与算法分析-C语言描述)
- 二叉查找树 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 数据结构与算法分析-c语言描述版 mark allen weiss
- 数据结构与算法分析-C语言描述 3.4 交集
- 数据结构与算法分析-C语言描述 重点笔记
- 数据结构与算法分析——C语言描述 第三章的单链表
- 数据结构与算法分析-C语言描述 3.2