精华内容
下载资源
问答
  • 大话数据结构

    2018-12-14 16:02:18
    双向链表既然是比单链表多了如可以反向遍历查找等的数据结构,那么也就需要付出一些小的代价。 3.15总结回顾 84 3.16结尾语 85 如果你觉得上学读书是受罪,假设你可以活到80岁,其实你最多也就吃了20年苦。用人生...
  • 第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序表插入...
  • 数据结构与算法.xmind

    2020-06-19 17:04:23
    数据结构与算法 排序算法 内排序 八大基础排序 选择排序 简单选择排序 思想 每次选择最大的数插入到末尾中 做法 外层for循环控制次数 内层for循环找出最大的值的角...
  • 数据结构2.txt 数据结构3.txt 数组完全单元.txt 数组操作.txt 数组递归退出.txt 数组递归退出2.txt 文件加密.txt 文件复制.txt 文件连接.txt 无向图.txt 时间陷阱.txt 杨辉三角形.txt 栈单元加.txt 栈...
  • 第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...
  • 数据结构2.txt 数据结构3.txt 数组完全单元.txt 数组操作.txt 数组递归退出.txt 数组递归退出2.txt 文件加密.txt 文件复制.txt 文件连接.txt 无向图.txt 时间陷阱.txt 杨辉三角形.txt 栈单元加.txt 栈...
  • ./数据结构/单链表: ww.c 冒泡排序.c 单链表1.c 单链表2.c 单链表.c 单链表倒序.c 单链表的处理全集.c 建立链表1.c 节点.c 质因子.c 链表十五人排序.c 链表(递归).c ./数组: 数字移动.c 数组操作.c 杨辉...
  • 200个经典C程序源码(包括基础篇+数据结构篇+数值计算与趣味数学篇+图形篇+系统篇+常见试题解答篇) 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006...
  • 什么是链式存储: 1:用一组任意的存储单元存储线性表的数据元素,这...单链表的删除插入操作: 代码实现:查找,初始化,插入,删除—操作实现 /*srand(time(0))?;//先设置种子 rand();//然后产生随机数 Srand是种下

    什么是链式存储:

    1:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在内存中未被占用的任意位置。
    2:链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址(指针)。
    3:存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。这两部分信息组成数据元素称为存储映像,称为结点(Node)。

    在这里插入图片描述

    单链表的删除插入操作:

    在这里插入图片描述

    代码实现:查找,初始化,插入,删除—操作实现

    /*srand(time(0))?;//先设置种子
    rand();//然后产生随机数
    Srand是种下随机种子数,你每回种下的种子不一样,用Rand得到的随机数就不一样。
    为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值
    (因为每时每刻时间是不一样的了)。
    */
    #include <time.h>
    #include <iostream>
    using namespace std;
    #include <stdlib.h>    //malloc(),free(),srand(),rand()的头文件 
    #define MAXSIZE 20
    #define OK 1
    #define ERROR 0 
    typedef int ElemType;
    typedef int Status;
    
    typedef struct Node
    {
    ElemType data;      // 数据域
    struct Node* Next;  // 指针域
    } Node;
    typedef struct Node* List;
    
    
    
    /* 操作结果:用e返回L中第i个数据元素的值 */
    Status  GetElem(Node *L, int i, ElemType *e){
    	
    	List p;
    	p = L;
    	int j = 1; 
    	for( ; j <= i&& p ; j++){
    		p = p->Next;
    	}
    	
    	if(!p  ){
    		return ERROR;
    	}
    	*e = p->data;
    	return OK; 
    }
    
    /* 操作结果:删除L的第i个数据元素,并用e返回其值. */
    Status ListDelete(Node *L,int i, ElemType *e){
    	List p,q;
    	p = L;
    	int j = 1;
    	while(p->Next && j < i){
    		p = p->Next;
    		j++;
    	}
    	if(!(p->Next) || j > i){
    		return ERROR;
    	}
    	*e = p->Next->data;
    	
    	q = p->Next->Next;	
    	
    	free(p->Next);
    	
    	p->Next = q;
    	
    	/*  q = p->next;    p->next = q->next;    free(q); 也可这么写*/ 
    	
    	
    	return OK; 
    }
    
    /* 操作结果:在L中第i个位置之前插入新的数据元素e. */
    Status ListInsert(Node *L, int i, ElemType e){
    	List p,s;
    	p = L;
    	int j = 1;
    	while(p && j< i){
    		p = p->Next;
    		j++;
    	}
    	if(!p || j > i){
    		return ERROR;
    	}
    	
    	s = (List ) malloc(sizeof(Node));   //  sizeof()是操作符,不需要添加头文件 
    	s->data = e;
    	s->Next = p->Next;
    	p->Next = s;
    	return OK;   
    	
    }
    
    /* 头插法建立单链表示例 */
    void CreateListB(List *L, int n){
    	Node *p;
    	
    	//srand(time (0));
    	
    	*L = (List)malloc(sizeof(Node));  // 生成头结点 
    	 
    	(*L)->Next = NULL;
    	for(int i = 0 ; i < n ; i++ )  {
    		 p = (List)malloc(sizeof(Node));
    		 p->data = rand()%10+1;
    		 p->Next = (*L)->Next;
    		 (*L)->Next = p; 
    	}
    	 
    }
    
    /* 尾插法建立单链表演示 */
    void CreateListA(List *L, int n){
    	List p , r; 
    	//srand(time(0));
    	*L = (List)malloc(sizeof(Node));
    	r = *L; 
    	for(int i = 0 ; i < n ; i++){
    		
    		p = (List) malloc(sizeof(Node));
    		p->data = rand()%10+1;
    		r->Next = p;
    		p->Next = NULL;
    		r = p; 
    	}
    	//cout<<L->data;
    }
    
    
    /*打印整个链表*/
    void PrintfList(Node *L){
    	
    	Node *p = L->Next;
    	while(p){
    		cout<<p->data<<"  ";
    		p = p->Next;
    	}
    	cout<<endl; 
    }
    
    int main(){
    		
    	cout<<"头插法检测"<<endl; 
    	Node *headA;
    	CreateListA(&headA,5);
    	PrintfList(headA); 
    	
    	
    	/*检测,查找,插入,删除操作*/
    	ElemType i = 0;
    	cout<<"查找位置1的元素"<<endl; 
    	GetElem( headA , 1, &i); 
    	cout<<i<<endl; 
    	cout<<"删除位置1的元素"<<endl; 
    	ListDelete(headA,1, &i); 
    	PrintfList(headA); 
    	cout<<"位置1插入元素"<<endl;
    	ListInsert(headA, 1 , i);
    	PrintfList(headA); 
    	
    	cout<<"----------------------------------------------------------------------"<<endl;
    	cout<<"尾插法检测"<<endl; 	
    	Node *headB;
    	CreateListB(&headB,5);
    	PrintfList(headB); 
    	/*检测,查找,插入,删除操作*/
    	ElemType I = 0;
    	cout<<"查找位置1的元素"<<endl; 
    	GetElem( headB , 1, &I); 
    	cout<<I<<endl; 
    	cout<<"删除位置1的元素"<<endl; 
    	ListDelete(headB,1, &I); 
    	PrintfList(headB); 
    	cout<<"位置1插入元素"<<endl;
    	ListInsert(headB, 1 , I);
    	PrintfList(headB); 
    	
    	
    	return 0;
    } 
    
    
    展开全文
  • c和指针.pdf

    热门讨论 2014-07-02 09:42:31
    全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。 ...
  • C和指针 Pointer on C

    2015-05-08 09:25:32
    12.2.1 在单链表插入 12.2.2 其他链表操作 12.3 双链表 12.3.1 在双链表中插入 12.3.2 其他链表操作 12.4 总结 第13章 高级指针话题 13.1 进一步探讨指向指针的指针 13.2 高级声明 13.3 函数...
  •  12.2.1 在单链表插入   12.2.2 其他链表操作   12.3 双链表   12.3.1 在双链表中插入   12.3.2 其他链表操作   12.4 总结   12.5 警告的总结   12.6 编程提示的总结   ...
  • C和指针 清晰版 PDF

    热门讨论 2011-10-31 18:29:15
    全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。 ...
  • 《C陷阱与缺陷》~!~!~!

    2009-10-13 18:26:25
    12.2.1 在单链表插入 12.2.2 其他链表操作 12.3 双链表 12.3.1 在双链表中插入 12.3.2 其他链表操作 12.4 总结 12.5 警告的总结 12.6 编程提示的总结 12.7 问题 12.8 编程练习 第13章 高级指针话题 13.1 进一步...
  • 200个C程序.rar

    2021-05-06 12:46:56
    第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序表插入...
  • 第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序表插入...
  • 第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序表插入和删除 054 ...
  • c和指针PDF电子书

    热门讨论 2010-05-06 13:18:58
    12.2.1 在单链表插入 236 12.2.2 其他链表操作 245 12.3 双链表 245 12.3.1 在双链表中插入 246 12.3.2 其他链表操作 253 12.4 总结 253 12.5 警告的总结 254 12.6 编程提示的总结 254 12.7 问题 254 12.8 编程...
  • 200个经典C程序【源码】

    千次下载 热门讨论 2013-08-08 10:48:40
    第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序表插入...
  • C语言通用范例开发金典.part2.rar

    热门讨论 2012-08-31 14:18:18
    第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...
  • C 开发金典

    2013-06-20 16:20:03
    第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...
  • C语言通用范例开发金典.part1.rar

    热门讨论 2012-08-31 14:09:26
    第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...
  • C和指针 pdf 加上程序

    2008-11-09 01:33:59
    12.2.1 在单链表插入 236 12.2.2 其他链表操作 245 12.3 双链表 245 12.3.1 在双链表中插入 246 12.3.2 其他链表操作 253 12.4 总结 253 12.5 警告的总结 254 12.6 编程提示的总结 254 12.7 问题 254 12.8 编程...
  • 第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序表插入...
  • 第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 ...
  • C语言学习实例220例

    2015-06-16 23:47:59
    第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序表插入和删除 054 ...
  • 第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 ...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

数据结构随机数插入单链表操作

数据结构 订阅