【数据结构】单链表上的基本运算
来源:互联网 发布:淘宝商品如何推广 编辑:程序博客网 时间:2024/06/06 14:08
1.初始化
<span style="font-family:KaiTi_GB2312;font-size:18px;">//建立一个空的单链表LinkList InitiateLinkList( ){ LinkList head; //头指针 head = malloc(sizeof(node)); //动态构建一个节点,它是头结点 head ->next = NULL; return head;}</span>
2.求表长
//求单链表表head的长度int LentghLinklist ( LinkList head ){ Node * p = head; //p是工作指针,初始时p指向头结点 int cnt = 0; //计数器置初值 while(p->next != NULL) //判断是否为尾节点 { p = p->next; //指针移动到下一个节点 cnt ++; } return cnt;}
3.读表元素
//在单链表head中查找第i个元素节点,若找到,则返回指向该节点的指针,否则返回NULLNode * GetLinklist(LinkList head,int i){ Node *p; //p是工作指针 p = head ->next; //初始时p指向头结点 int c = 1; while ( (c<i) && (p != NULL) ) //当未到第i结点且未到尾节点时继续后移 { p = p->next; c++; } if ( i == c ) return p; //找到第i个节点 else return NULL; //i<1 或 i>n ,i值不合法,查找失败}
4.定位
//求表head中第一个值等于x的结点的序号,若不存在这种结点,返回结果为0int LocateLinklist( LinkList head , DataType x){ Node * p = head; //p是工作指针 p = p->next; //初始时p指向首结点 int i=0; //i代表结点的序号,这里置初值为0 while (p!= NULL && p->data !=x) //访问链表 { i++; p = p->next; } if (p!= NULL ) return i+1; else return 0;}
5.插入
//在表head的第i个数据元素结点之前插入一个以x为值的新结点void InsertLinklist ( LinkList head , DataType x,int i ){ Node *p , *q; if ( i == 1) q = head; else q = GetLinklist (head ,i-1); //找第i-1个数据元素结点 if (q == NULL ) //第i-1个结点不存在 exit ("找不到插入的位置"); else { p = malloc ( sizeof(Node)); p->data = x; //生成新结点 p->next = q->next; //新结点链域指向*q的后继结点 q->next = p; //修改*q的链域 }}6.删除
//删除表head的第i个结点void DeleteLinklist (LinkList head,int i){ Node *p; if(i==q) q=head; else q=GetLinklist(head,i-1); //先找到待删除结点的直接前驱 if(q!=NULL && q->next != NULL) //若直接前驱存在且待删除结点存在 { p=q->next; //p指向待删除结点 q->next=p->next; //移出待删结点 free(p); //释放已移出结点p的空间 } else exit ("找不到要删除的结点"); //结点不存在}
1 0
- 【数据结构】单链表上的基本运算
- 队列的数据结构及基本运算
- 经典数据结构之矩阵的基本运算
- 【数据结构之顺序栈的基本运算】
- 【数据结构之链栈的基本运算】
- 【数据结构之链队列的基本运算】
- 数据结构 顺序串的各种基本运算
- 数据结构之顺序表的基本运算
- 数据结构 - 串的基本运算实现
- 数据结构学习-二叉树的基本运算
- 数据结构——树的基本运算
- 数据结构---二叉树的基本运算
- 数据结构与基本运算
- 栈数据结构及基本运算
- 数据结构-链式存储-基本运算
- 经典数据结构之二维矩阵的基本运算
- 数据结构之顺序表上的基本运算
- 数据结构实践——顺序表的基本运算
- Android UI 优化工具HierarchyViewer---阿冬专栏
- ResultMapping 错误之标记类名后转发路径错误问题
- awk
- 无意中发现其它网站使用我的文章
- 17. Letter Combinations of a Phone Number
- 【数据结构】单链表上的基本运算
- 文件
- Sum Problem
- 浅析互斥锁与条件变量的使用
- 打开转发IP功能(IP forwarding)
- java load property
- 传纸条 优化
- linux文件学习9
- RMQ模板题 POJ 3264