电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构算法总结VIP免费

数据结构算法总结_第1页
1/14
数据结构算法总结_第2页
2/14
数据结构算法总结_第3页
3/14
数据结构算法背诵 一、线性表 1. 逆转顺序表中的所有元素 算法思想:第一个元素和最后一个元素对调,第二个元素和倒数第二个元素对调,……,依此类推。 void Reverse(int A[], int n) { int i, t; for (i=0; i < n/2; i++) { t = A[i]; A[i] = A[n-i-1]; A[n-i-1] = t; } } 2. 删除线性链表中数据域为 item 的所有结点 算法思想:先从链表的第2 个结点开始,从前往后依次判断链表中的所有结点是否满足条件,若某个结点的数据域为 item,则删除该结点。最后再回过头来判断链表中的第1 个结点是否满足条件,若满足则将其删除。 void PurgeItem(LinkList &list) { LinkList p, q = list; p = list->next; while (p != NULL) { if (p->data == item) { q->next = p->next; free(p); p = q->next; } else { q = p; p = p->next; } } if (list->data == item) { q = list; list = list->next; free(q); } } 23. 逆转线性链表 void Reverse(LinkList &list) { LinkList p, q, r; p = list; q = NULL; while (p != NULL) { r = q; q = p; p = p->next; q->next = r; } list = q; } 4. 复制线性链表(递归) LinkList Copy(LinkList lista) { LinkList listb; if (lista == NULL) return NULL; else { listb = (LinkList)malloc(sizeof(LNode)); listb->data = lista->data; listb->next = Copy(lista->next); return listb; } } 5. 将两个按值有序排列的非空线性链表合并为一个按值有序的线性链表 LinkList MergeList(LinkList lista, LinkList listb) { LinkList listc, p = lista, q = listb, r; // listc 指向 lista 和 listb 所指结点中较小者 if (lista->data <= listb->data) { listc = lista; r = lista; p = lista->next; } else { listc = listb; r = listb; q = listb->next; } while (p != NULL && q != NULL) { if (p->data <= q->data) { r->next = p; r = p; p = p->next; } else { r->next = q; r = q; q = q->next; } } // 将剩余结点(即未参加比较的且已按升序排列的结点)链接到整个链表后面 r->next = (p != NULL) ? p : q; return listc; } 3二、树 ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

数据结构算法总结

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部