C和其他语言都一样,只是关键字更少,更接近硬件,底层操作大都需要用C中的头文件和库函数来实现。学习的过程也不乏乐趣,在入门阶段,不建议大家去磨练算法,非常枯燥。建议学习一些系统编程和网络编程,趣味性更强,也能做一些有用的东西,不会乏味到失去兴趣。等过了这个阶段,对C的认识已经比较全面和具有一定深度了,再去看一些算法相关的,也不会觉得很复杂了。后期,不管用什么语言都完全是个人思维的表达,不影响表达思想和实现的工具都是好工具。不要陷入编程语言的纠缠和纷争。临渊羡鱼,不如退而结网。
下面根据自己的理解,实现一个单向循环链表和一个向链表中插入新元素的操作。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
// 定义数据类型
typedef struct _stack{
int a;
int b;
struct _stack *c;
}stack;
// 主函数
int main(int argc, char const *argv[])
{
stack s, *real_stack_head, *real_stack_tail;
real_stack_head = (stack*)malloc(10*sizeof(stack)); // 申请内存
if (real_stack_head == NULL)
{
_exit(127);
} // 判断是否成功
for (int i = 0; i < 10;