单链表实例1
来源:互联网 发布:uml画图软件 编辑:程序博客网 时间:2024/06/05 19:44
#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef int DataType;typedef struct Node{DataType data;struct Node *next;}LinkNode, *LinkList;#include "LinkList.h"//删除A中出现B的元素的函数声明void DelElem(LinkList A, LinkList B);void main(){int i;DataType a[] = { 2, 3, 6, 7, 9, 14, 56, 45, 65, 67 };DataType b[] = { 3, 4, 7, 11, 34, 54, 45, 67 };LinkList A, B;LinkNode *p;InitList(&A);InitList(&B);//将数组a中的元素插入到单链表A中for (i = 1; i <= (sizeof(a) / sizeof(a[0])); i++){if (InsertList(A, i, a[i - 1]) == 0){printf("位置不合法");return;}}//将数组b中的元素插入到单链表B中for (i = 1; i <= (sizeof(b) / sizeof(b[0])); i++){if (InsertList(B, i, b[i - 1]) == 0){printf("位置不合法");return;}}printf("单链表A中元素有%d个:\n", ListLength(A));for (i = 1; i <= ListLength(A); i++){p = Get(A, i);if (p)printf("%4d", p->data);}printf("\n");printf("单链表B中元素有%d个:\n", ListLength(B));for (i = 1; i <= ListLength(B); i++){p = Get(B, i);if (p)printf("%4d", p->data);}printf("\n");DelElem(A, B);printf("将A中出现B的元素删除后,A中的元素还有%d个:\n", ListLength(A));for (i = 1; i <= ListLength(A); i++){p = Get(A , i);if (p)printf("%4d", p->data);}printf("\n");system("pause");}/*删除A中出现B的元素的函数实现*/void DelElem(LinkList A, LinkList B){int i, pos;DataType e;LinkNode *p;/*在单链表B中,取出每个元素与单链表A中的元素比较,如果相等,则删除A中元素对应的结点*/for (i = 1; i <= ListLength(B); i++){p = Get(B, i); //取出B中的每个结点,将指针返回给pif (p){pos = LocatePos(A, p->data);//比较B中的元素是否与A中元素相等if (pos > 0)DeleteList(A, pos, &e);//如果相等,将其从A中删除}}}
0 0
- 单链表实例1
- 单链表实例
- 实例1
- 实例1
- Glib实例学习(1)单链表
- 单链表操作实例程序
- java单链表实例
- C++数据结构 单链表实例
- 单链表实例2
- 002.单链表C实例
- XML实例解析1
- VSS使用实例1
- 线程:实例1
- EJB2.1开发实例
- ACE实例编程1
- ajax实例1
- Junit测试实例1
- jspsmartupload 详细实例(1)
- Linux下汉字编码方式UTF-8,Windows下面是GB2312
- hdu1074(状压)
- 15级算法第三次上机解题报告
- 安卓自定义View基础-坐标系
- 顺序表实例2
- 单链表实例1
- 分离颜色通道(split)和多通道融合(merge)
- Java的native方法
- 伪分布式web页面查看 待完成
- SQL大量数据查询优化--三十则
- Unity UI框架开发(2)--实现UIBaseWindow
- 单链表实例2
- 关于MVC/Model2
- Android 小项目之---- 计算器 使用同一个事件监听完成 加减乘