C/C++教程

小鲤算法C(单链表系列1之基础知识必备)

本文主要是介绍小鲤算法C(单链表系列1之基础知识必备),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

 

前言

小鲤碎碎念

必备基础知识

1,C的基本操作。

 2,指针

3,结构体


前言

    链表是数据存储的重要形式之一,但是对初学者不太友好。本系列将针对链表尽量详细的叙述。由于本人知识水平有限,如果读者发现问题,请指出斧正,感激不尽。

小鲤碎碎念

     当初小鲤在学习链表的时候,秀发掉了不少/(ㄒoㄒ)/~~

 现在想来,还是太年轻了`(*>﹏<*)′

在正式开始学习链表之前,你一定要学习一些基础知识。下面小鲤会一一列出,已经掌握的可以跳到第二节。

必备基础知识

1,C的基本操作。

包括但是不限于:输入输出,循环,条件控制等 。如果这部分没有掌握,暂时别往下走。

我们通过一道练习题来掌握基本操作。本题不做更多的解释,如果有不理解,可以私信。

509. 斐波那契数

int f[31];                                               //(1)
int fib(int n){                                          //(2)
   f[0]=0;                  
   f[1]=1;
if(n==0){                                                //(3)
  return f[0];
}else if(n==1){
  return f[1];
}else{                                                   //(4)
 for (int i=2;i<=n;i++){                               
       f[i]=f[i-1]+f[i-2]; 
   }
}
   return f[n];
}
int main(){                                              //(5)
 int n,ans;                                              //(6)
scanf("%d",&n);                                          //(7)
ans=fib(n);
printf("%d",ans);                                        //(8)
return 0;
}

简单说明一下,leetcode只要求你给出函数,但是如果你没有跳过本节内容,希望你将本节所有简单例子都在编译器上跑一遍。

(1)定义数组。方式为  type name[ ],[ ]所填为元素个数。

(2)fib函数。定义函数为  type name (type1 name1,type2 name2){

                                            }

       ()内为形参表,{  }为函数体。调用时要有函数声明。

(3)条件判断 if( 测试条件){

                        语句1;

                         } else{

                         语句2;

                         }

测试条件为真,执行语句1,否则执行语句2。

(4)循环。for( 初始化;循环条件;表达式){

                    }表达式一般使循环某个条件做出改变,使条件不成立,退出循环。

(5)主函数。

(6)定义变量。

(7)输入。scanf("%d",&n);% _于&_的类型一一对应。&为取地址符。

(8)输出。

 2,指针

我们知道,任何一个变量在定义的时候在内存块系统都会为其申请一个内存。计算机的内存一般统一按十六进制编号。很容易想到,只要我们有了这个编号,就可以访问这个内存的内容。

int a = 3;
int *p;                  //(1)
 p = &a;                 //(2)
*p = 5;                  //(3)

(1)定义了一个整型变量指针。* 为指针标志,不做任何作用;

(2)对p赋值。p为指针变量,只能储存和他类型相同的变量地址。用&取地址得到a的地址。此时,*p的值为a,即3。这里的*为解地址符,有实在意义。

(3)可以通过* p 改变a的值,此时a的值为5。

3,结构体

 有的时候,int,float,double,char等等数据类型可能还是不够我们用。可能我们比较刁钻吧。但是C的开发者很贴心留下了一种机制,可以让我们自定义类型。那就是struct。

举个栗子。

struct name{
 int a;
 char b[10];
};

那么我们现在就有一种数据类型struct name。他有两个成员,整型变量a,和字符数组b。

需要注意的是,定义类型时不能直接赋初值。如  int a 改写为 int a=10是错误的。

struct name num[10];我们现在定义了struct name类型的数组num。

怎么使用呢?对某个成员,如struct name 里的a,我们用.来引用。如num[0].a,即代表num[0]里的成员a。而指针的话,我们可以用->。

如:

struct name * p;
p=&num[0];
p->a=10;

这里就通过指针对num[0]的a进行赋值。

小鲤只是一条想要好运的笨鲤鱼o(* ̄▽ ̄*)ブ

今天的内容已经结束了>_<

如果我的文章对你有帮助,不要吝惜你的点赞,小鲤希望得到你的支持ლ(´ڡ`ლ)

求三连和关注!!!

这篇关于小鲤算法C(单链表系列1之基础知识必备)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!