程序员面试题目总结--链表(1)【单链表插入和删除】
来源:互联网 发布:socket() python 编辑:程序博客网 时间:2024/06/13 12:15
1、单链表插入和删除
题目:单链表插入和删除
分析:插入是将值为x的新结点插入到单链表的第i个结点的位置上,删除即将单链表的第i个结点删去。
//单链表插入和删除#include<iostream>using namespace std;typedef struct node{int data;node *next;}linklist;linklist *head=NULL;//创建长度为len的链表linklist* CreateList(int* arr,int len){int data;linklist* pCur,* pRear;head=(linklist*)malloc(sizeof(linklist));pRear=head;int count=0;while(count<len){pCur=(linklist*)malloc(sizeof(linklist));pCur->data=arr[count];pRear->next=pCur;pRear=pCur;count++;}pRear->next=NULL;return head;}//显示链表void ShowList(linklist* p){while(p){cout<<p->data <<' ';p=p->next;}cout << endl;}/************************************************************************//* 将值为x的新结点插入到单链表的第i个结点的位置上 *//************************************************************************/void InsertList(linklist* p,int x,int i){int j=1;while(p->next && j<i){p=p->next;++j;}if(p==NULL)return;linklist* s=(linklist*)malloc(sizeof(linklist));s->data=x;s->next=p->next;p->next=s;}/************************************************************************//* 删除单链表的第i个结点 *//************************************************************************/void DeleteList(linklist* p,int i){int j=1;while(p->next && j<i){p=p->next;++j;}if(p==NULL || p->next==NULL || j>i)return;linklist* q=p->next;p->next=q->next;free(q);}int main(){int a[]={3,4,5,1,2,-1,7};CreateList(a,sizeof(a)/sizeof(a[0]));ShowList(head->next);InsertList(head,10,4);ShowList(head->next);DeleteList(head,5);ShowList(head->next);return 0;}
0 0
- 程序员面试题目总结--链表(1)【单链表插入和删除】
- 程序员面试题目总结--链表(3)【单链表反转】
- 程序员面试题目总结--链表(6)【单链表排序】
- 程序员面试题目总结--链表(2)【找出单链表中的倒数第K个元素】
- 程序员面试题目总结--链表(4)【从尾到头输出单链表】
- 程序员面试题目总结--链表(5)【寻找单链表的中间结点】
- 程序员面试题目总结--链表(7)【实现单链表交换任意两个元素(不包括表头)】
- 对程序员面试题目的重要总结
- 程序员面试题目总结(持续更新)
- 自整的面试题目及代码---单链表的创建、测长、打印、删除、插入
- 程序员面试宝典题目-单链表
- 程序员面试宝典之数据结构基础----⑥双链表的建立,插入和删除
- 面试之路(10)-BAT面试之java实现单链表的插入和删除
- 程序员面试宝典_链表基本操作,建立,求长,删除和插入特定值的结点
- 程序员面试题目总结--数组(一)【递归求数组所有元素和、用一个for循环打印出一个二维数组、用递归判断数组是否是递增、有序数组中删除重复元素】
- JAVA程序员面试题目
- linux程序员面试题目
- JAVA程序员面试题目
- mysql for mac
- Windows 休眠文件大小设置,就这么用到了
- Android 中的 Service 全面总结
- HDU 2795 Billboard(线段树点更新)
- 关于xcode模拟器显示中文的问题
- 程序员面试题目总结--链表(1)【单链表插入和删除】
- 背包问题
- 黑马程序员-菜鸟到大神的蜕变
- 代理模式深入(二)——动态代理实现机制
- C++中反正切atan2(y,x)与atan(x)
- 8大算法图文讲解
- 标签控制器部分知识
- ZXing 二维码应用
- OCP 1Z0 053 257