**
C语言新手小白的学习笔记-------------目前持续更新中
**
本人90后电气工程及其自动化大学生,大二开始接触C语言,写过前端,Python,但是都不精通,通过许多认识后明白了自身的许多不足,因此,想通过博客与大家分享我的学习过程和认识,如果有哪位大佬有更好的意见和认识,请你们一定要积极留言,如果有错误的地方,请大家能第一时间帮我指出,谢谢各位了,大家一起进步,每天进步一点点,加油,热爱技术的各位。
第一期 单链表的基本操作
下面是我根据单链表的结构特点和自己的理解以及借鉴其他博客大佬(MING.MING)的代码写出的代码:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define OK 100
#define NO 404
#define LENGTH 10
#define NUM 0
typedef struct Linklist{
/*定义链表的结点的数据结构体,链表的结点包含元素和指向。*/
int element;
struct Linklist *next;
}Node;
int CreateLinklist(Node *head,int len){
/*创建一个新的具体长度的链表,并返回是否成功创建。*/
int i;
Node *h=head;
for(i=0;i<len;i++){
Node *newnode=(Node*)malloc(sizeof(Node)); /*为新建的结点分配新的空间。*/
newnode->next=NULL; /*初始化新建结点*/
scanf("%d",&newnode->element);
h->next=newnode; /*将头指针指向新建的结点,形成头节点。*/
h=newnode; /*将头指针指向新建的结点。*/
}
if(h->next!=NULL){
return OK;
}
else{
return NO;
}
return len;
}
int TraveLinklist(Node *head){
/*遍历整个链表的所有结点,并返回相应的状态*/
Node *p=head->next; /*将头指针赋给结点p*/
while(p!=NULL){
/*判断头结点是否为空*/
printf("%d\t",p->element);
p=p->next;
}
if(p->next==NULL){
return OK;
}
else{
return NO;
}
}
int Forwordindexof(Node *head,int data){
/*查找链表的某个结点,并返回该节点所在的位置,如果不存在该结点,则返回状态NO*/
int index=1; /*链表位置参数初始化*/
Node *p=head->next;
while(p!=NULL){
if(p->element==data){
printf("目标结点的位置为:%d\t",index);
}
index++; /*结点位置参数增加,直到找到目标结点*/
p=p->next; /*将指向不断右移*/
}
return index