数据结构(C语言)
*南有乔木
越努力越幸运
展开
-
链表合并与逆置
对两个元素递增有序的单链表A和单链表B,编写算法将A、B合并成为一个按元素递减有序(允许有相同元素)的单链表C,不允许使用A、B中的原有结点,不允许增加新结点。原创 2021-06-13 23:49:48 · 282 阅读 · 1 评论 -
单链表逆置C语言编程实现
单链表逆置#include<stdio.h>#include<stdlib.h>typedef struct node{ char data;//data为结点的数据信息 struct node *next;//next为指向后继结点的指针 }LNode;//单链表结点类型LNode *CreatLinkList()//在表尾生成单链表{ char x; LNode *q,*p,*head; head=(LNode *)malloc(sizeof(LNode原创 2021-06-13 23:15:32 · 2093 阅读 · 0 评论 -
单链表基本运算
单链表基本运算包括求单链表的长度,按位查找、按值查找、删除、插入原创 2021-06-13 20:16:09 · 473 阅读 · 0 评论 -
将两个升序的顺序表A和B合并为一个升序表C
将两个升序的顺序表A和B合并为一个升序表C有顺序表A和B,其表中的元素均按照由小到大排序,将A和B两个升序的顺序表A和B合并为一个升序表C ,C中的元素也按照由大到小排序#include<stdio.h>#include<stdlib.h>#define MAXSIZE 1024typedef struct{ int data[MAXSIZE];//存储顺序表中的元素 int len;//顺序表长度}SeqList;//顺序表类型 SeqList *Init_S原创 2021-06-13 20:11:05 · 2102 阅读 · 3 评论 -
顺序表中的元素逆置C语言代码实现
顺序表中的元素逆置#include<stdio.h>#include<stdlib.h>#define MAXSIZE 1024typedef struct{ int data[MAXSIZE];//存储顺序表中的元素 int len;//顺序表长 }SeqList;//顺序表类型 SeqList *Init_SeqList()//顺序表初始化 { SeqList *L; L=(SeqList*)malloc(sizeof(SeqList)); L->原创 2021-06-13 20:08:10 · 4760 阅读 · 3 评论 -
静态链表C语言代码实现
静态链表C语言代码实现静态链表C语言代码实现静态链表C语言代码实现#include<stdio.h>#include<stdlib.h>#define MAXSIZE 1024typedef struct dlnode{ char data;//data为结点的数据信息 int cursor;//cursor标识后继结点指针 }SNode;//单链表结点类型void InsertList(SNode L[],int i,char x)//在单链表head的第一个原创 2021-06-13 20:06:25 · 246 阅读 · 0 评论 -
双向链表代码实现
双向链表代码实现C语言代码实现C语言代码实现#include<stdio.h>#include<stdlib.h>#include <string.h>typedef struct dlnode{ char data;//data为结点的数据信息 struct dlnode *prior,*next;//prior和next分别为指向直接前驱和直接后继结点的指针 }DLNode;//单链表结点类型DLNode *CreatLinkList()//建立带原创 2021-06-13 20:02:39 · 102 阅读 · 0 评论 -
数据结构C语言篇-链表的生成编程实现
链表的生成编程实现在表头插入生成单链表在表尾插入生成单链表在表头插入生成单链表#include<stdio.h>#include<stdlib.h>typedef struct node{ char data;//data为结点的数据信息 struct node *next;//next为指向后继结点的指针 }LNode;//单链表结点类型void CreatLinkList(LNode **head)//在表头生成单链表{ //将主调函数中指向待生成单链表的指原创 2021-06-09 23:15:24 · 300 阅读 · 3 评论 -
数据结构C语言篇-顺序表基本运算编程实现
打卡第一天——线性表基本运算顺序表基本运算编程实现线性结构的特点:一、线性表的定义二、线性表的类型定义三、线性表的顺序表示四、顺序存储结构的线性表类C语言表示:线性表的静态分配顺序存储结构顺序表的插入算法顺序表的删除算法五、删除算法的时间复杂度六、代码实现(ps:此次练习主要是C语言练习,代码在文章末尾)数据结构的形式定义:数据结构名称=(D,S)其中D为数据元素的有限集,S是D上关系的有限集线性结构的特点:在数据元素的非空有限集中,(1)存在唯一的一个被称做“第一个”的数据元素;(2)存原创 2021-06-08 22:59:43 · 1627 阅读 · 0 评论 -
双向冒泡排序(C语言)
双向冒泡排序//双向冒泡排序#include<stdio.h>#define MAXSIZE 1024typedef struct{ int key;//关键字项 char data;//其他数据项 }RecordType;//记录类型void DBubbleSort(RecordType R[],int n){ int i,j,swap=1; for(i=1;swap!=0;i++)//进行n-1趟排序 { swap=0;//设置未发生交换标志 for(原创 2021-01-09 23:26:47 · 1958 阅读 · 0 评论 -
冒泡排序(C语言)
冒泡排序#include<stdio.h>#define MAXSIZE 1024typedef struct{int key;//关键字项char data;//其他数据项}RecordType;//记录类型void BubbleSort(RecordType R[],int n){//对R[1]~R[n]这n个记录进行冒泡排序int i,j,swap;for(i=1;i<n;i++)//进行n-1趟排序{swap=0;//设置未发生交换标志for(j=1;原创 2021-01-09 23:25:31 · 376 阅读 · 0 评论 -
希尔排序(C语言)
希尔排序//希尔排序#include<stdio.h>#define MAXSIZE 1024typedef struct{ int key;//关键字 char data;//其他数字项 }RecordType; void shellinsert(RecordType R[],int n,int d)//希尔排序{ //对R[1]~R[n]中的记录进行希尔排序,d为增量(步长)因子 int i,j; for(i=d+1;i<=n;i++) if(R原创 2021-01-09 23:23:27 · 192 阅读 · 0 评论 -
折半插入排序
折半插入排序#include<stdio.h>#define MAXSIZE 1024typedef struct{ int key;//记录关键字 char data;//其他数据项 }RecordType;//记录类型int B_insertSort(RecordType R[],int n){ //对n个记录序列R[1]~R[n]进行折半插入排序 int i,j,low,high,mid; for(i=2;i<=n;i++) { R[0]=R[i]原创 2021-01-09 23:21:45 · 150 阅读 · 1 评论 -
插入排序(C语言)
插入排序(C语言)//插入排序#include<stdio.h>#define MAXSIZE 1024typedef struct{ int key;//关键字项 char data;//其他数据项 }RecordType;//记录类型void D_insert(RecordType R[],int n){ //对n个记录序列R[1]~R[n]进行直接插入排序 int i,j; for(i=2;i<=n;i++) { if(R[i].key<R原创 2021-01-09 19:32:04 · 426 阅读 · 0 评论 -
寒假第一周学习计划——数据结构
寒假第一周学习目标:利用下班时间总结数据结构排序算法和查找算法五天完成学习内容:排序算法(C语言)1、 插入排序2、 折半插入排序3、希尔(shell)排序4、冒泡排序5、双向冒泡排序6、快速排序7、选择排序8、堆排序9、归并排序的递归算法实现10、归并排序的非递归算法实现11、基数排序查找算法(C语言)1、顺序查找2、折半查找3、分块查找4、二叉排序树建立、结点的查找和删除5、平衡二叉树的建立、结点的查找和删除6、哈希查找学习安排:1、总结数据结构相关原创 2021-01-09 18:08:43 · 528 阅读 · 2 评论