自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 链式二叉树的创建

节点构造typedef struct node(    int data;    struct node *left;    struct node *right;)BTnode;①创建根节点root=(BTnode *)malloc(sozeof(BTnode));root->data=a[0];root->left=root->right=NULL; ②创建其他...

2018-02-27 07:48:44 2672 2

原创 二叉树——什么是二叉树?

1.二叉树基本形态(4钟):只有左子女,只有右子女,左右子女都有,只有根节点,空2.二叉树结构表示①二元组表示法②广义表3.二叉树性质①任意一颗非空二叉树的叶子节点总比双分支节点多一个②有n个节点的二叉树,有n-1条边③对二叉树按层标号:0,1,2编号为i的层最多放2^i个节点若一颗h层的而擦还是的每一层的节点个数都达到最大值,这成为h层的满二叉树④完全二叉树:a>概念:一颗h层的完全二叉树...

2018-02-26 20:18:40 804

原创 链表与数组的递归

链表的递归设head指向一个非空单向链表例一:正向输出链表数据域的值void PrintLink(ElemSN *head){    if(head){        printf("%d\t",head->data);        PrintLink(head->next);    }}例二:逆向输出单项链表数据域的值void PrintLink(ElemSN *hea...

2018-02-26 18:49:22 404

原创 链表的交叉

两条链表发生交叉:如图如何判断链表是否交叉?原理:如果两个链表相交,则指向最后一个节点的指针必定相等void JudgeNode(ElemSN *head1,ElemSN*head2){    for( ;head1->next;head1=head1->next);    for( ;head2->next;head2=head2->next);    if(he...

2018-02-26 16:41:03 704

原创 栈(stack)——什么是栈?

1.栈是一种特殊的线性结构①栈满足线性结构②栈特殊性:栈有特殊的存储方式,访问结构(先进先出,进和出在一个端)2.栈的操作:①入栈:向栈口放入数据元素(push)②出栈:从栈口取出数据元素(pop)栈顶指针(top):用来指向最后一个入栈元素入栈操作:设栈的最大长度为size,栈满不可入栈(上溢)[top=size-1]入栈:top=top+1;s[top]=数据元素出栈操作:只有栈顶元素才可出栈...

2018-02-26 09:15:05 6326 3

原创 带表头节点的单向链表

1.形态普通单向链表头节点前面增加一个空的表头节点2.表头节点数据域不用存储具体数值优点:查找链表不需要两个指针连动插入算法不用再区分头部中间3.实现带表头节点的单项链表ElemSN *CreadLink(int L)//定义链表长度{    ElemSN *head,*tail;    head=tail=(ElemSN *)malloc(sizeof(ElemSN));//创建表头节点...

2018-02-23 10:58:05 2045

原创 单向链表节点的移动(排序)

单向链表的创建在这里不在赘述,详细请看另一篇文章《单向链表的创建》。在本篇文章中,主要通过举例的方式来帮大家理解单向链表节点的移动。本篇文章中创建节点用如下表示typdef struct node{ int date;//定义数据域 struct node * next;//定义指针域 } ElemSN; 例一:设head指向一个非空单项链表,设数据域值不重复,且都为...

2018-02-23 09:45:54 2317

原创 单向链表节点的删除

单向链表的创建在这里不在赘述,详细请看另一篇文章《单向链表的创建》。在本篇文章中,主要通过举例的方式来帮大家理解单向链表节点的删除。本篇文章中创建节点用如下表示typdef struct node{ int date;//定义数据域 struct node * next;//定义指针域 } ElemSN; 在链表节点的删除中,可以分为两种情况①删除头节点pDel=he...

2018-02-18 08:58:34 1433

原创 单向链表的遍历、查找

单向链表的创建在这里不在赘述,详细请看另一篇文章《单向链表的创建》。在本篇文章中,主要通过举例的方式来帮大家理解单向链表的基本遍历。本篇文章中创建节点用以下表示typdef struct node{     int date;//定义数据域     struct node * next;//定义指针域 } ElemSN; 例一:输出单向链表尾节点的值void PrintTail(El...

2018-02-17 21:23:48 6707

原创 单向链表的创建(正向建链、逆向建链)

正向创建单向链表(尾插)1.过程:①定义节点typdef struct node{    int date;//定义数据域    struct node * next;//定义指针域} ElemSN;②创建头节点,并使得头指针(head)和尾指针(tail)指向头节点Elemsn *head ,*tail;head=tail=(ElemSN*) mallco(sizeof(ElemSN))...

2018-02-14 17:53:11 2053 1

原创 顺序表中元素的删除

情景一:数据集合没有重复值设有数据集合Date={3,2,5,8,4,7,6,9};数据集合中元素不重复且无序目标:给定一个关键字“k”在Date中删除该元素int KeyWord(int Date[],int n, int key){    int i;    for(i=0,j=n;i<n%%Date[i]!=key;i++);//查找key所在位置 if(Date[i]=...

2018-02-13 08:46:30 4471

原创 顺序表中元素的移动

例一:设数据集合Date中有若干个整型数据;Date={10,20,30,40,50,60,70};要求:将第一个数据移动至顺序表最后a>覆盖式移动:通过Date[n]=Date[n+1]的方式将元素整体前移,最后给最够一个元素赋值为第一个数值的值,完成元素移动。void MoveArray(int Date[],int n){    int x,j;    x=Date[0];  ...

2018-02-11 23:00:14 1388

原创 顺序表数组的遍历

一:最大最小值问题a>在一个数据集合中(a[10]),没有重复值,有正有负。求正数中的次大次小;求负数中的次大次小int max1,max2,fmax1,fmax2,i;max1=max2=fmax1=max2=0;for(i=0;i<10;i++){ if(a[i]>0){ if(a[i]>max1){ max2=max1; max...

2018-02-10 16:12:38 1733

原创 顺序表数组——连续存储单元的应用

顺序表——数组:通过连续的存储单元来实现存储的数据集合要素:首地址,长度例一:利用数组输出13^100分析:长整型存储单元大小为4字节,最大可存储的数值为2147483647,显然13^100次方超出最大值,会产生溢出。          考虑利用数组进行存储,一个单元只存储一个数字(0~9)。           设数组a[N](N为足够大的数字),a[N-1]=1           k=a[...

2018-02-10 11:32:16 762

原创 字符串的删除

星号问题例:字符串s“********AB***CD********”1.删除全部*int i,j;if(s[i]!='*') s[j++]=s[i];s[j]=0; puts(s);2.删除前导* (1)寻找第一个非*下标 (2)覆盖 (3)适当位置添加结束符int i=0,j=0;while(s[i]=='*') i++;while(

2018-01-21 12:47:07 455

原创 基础循环——素数判断

素数又称质数,即只能被1和自己本身整除的数字1.最常见素数判断通过利用整型“i”遍历区间[2,n-1],判断是否数字“n”可以被“i”整除,如果可以被整除,则跳出循环,通过判断“i”与“n”关系,判断“n”是否为素数#includeint main(){ int i,n;//n代表被判断的数字 scanf("%d",&n); for(i=2;i<n;i++)

2018-01-21 10:06:26 1209 1

原创 迭代循环——输出一个数的逆置数

#includeint mian(){ int x,y,k=0; scanf("%d",&x); while(x){  y=x%10;  k=k*10+y;  x/=10; } printf("\n逆置数为:%d",&k);}

2018-01-20 22:55:50 560

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除