(C语言)初识链表

简介: (C语言)初识链表

1利用链表打印1-10的元素

#include<stdio.h>
//定义一个结构体变量
//既存放一个变量,又把首个节点的地址存入,方便之后通过head的地址找其他变量的地址
typedef struct  node
{
  int a;
  struct node* next;
};
int main()
{
  struct node head, *p, *q;
  int i, n;
  q = &head;//q取首元素地址
  for (i = 1; i <= 10; i++)//设置循环
  {
        malloc函数是c语言的函数,指申请一个你需要的变量大小的空间,单位是字节
  p = malloc(sizeof(struct node));//空间地址是随机的
  p->a = i;//将i的值存入p的a元素里
  q->next = p;//将p的地址存入q的next元素里
  q = p;再将p的地址覆盖在q上
  }
  p->next = NULL;//设置循环停止条件
  p = head.next;
  while (p != NULL)用while循环打印
  {
  printf("%d ", p->a);
  p = p->next;
  }
  return 0;
}


2,将链表的第二位插入一个0;

#include<stdio.h>
struct  node
{
  int a;
  node* next;
};
int main ()
{
  node head,*p,*q;
  int i,n;
  q=&head;
  for(i=1;i<=10;i++)
  {
  p=new node;
  p->a=i;
  q->next=p;
  q=p;
  }
  p->next=NULL;
  n=5;
  p=&head;
  for(i=0;i<n;i++) p=p->next;
  q=new node;
  q->a=0;
  q->next=p->next;
  p->next=q;
  p=head.next;
  while(p!=NULL)
    {
      printf("%d ",p->a);
   q=p->next;
   delete p;
   p=q;
    }
  return 0;
}


小编是在DEV上写的,因为好像vs中new和delete要c++函数。


效果

1669434860374.jpg


3删除第二个元素

struct  node
{
  int a;
  node* next;
};
int main ()
{
  node head,*p,*q;
  int i,n;
  q=&head;
  for(i=1;i<=10;i++)
  {
  p=new node;
  p->a=i;
  q->next=p;
  q=p;
  }
  p->next=NULL;
  n=2;
  p=&head;
  for(i=1;i<n;i++) p=p->next;
  q=p->next;
  p->next=q->next;
  p=head.next;
  delete q;
  while(p!=NULL)
    {
      printf("%d ",p->a);
   q=p->next;
   delete p;
   p=q;
    }
  return 0;
}

输出效果

1669434809274.jpg

相关文章
|
12天前
|
C语言
对链表使用插入排序的C语言实现示例
对链表使用插入排序的C语言实现示例
|
1月前
|
C语言
C语言循环链表讲解
C语言循环链表讲解
19 0
|
1月前
|
存储 C语言
C语言线性链表讲解
C语言线性链表讲解
18 0
|
1月前
|
存储 C语言
C语言双向链表讲解
C语言双向链表讲解
16 0
|
1月前
|
C语言
基于链表实现的链式管理系统(C语言课设)
基于链表实现的链式管理系统(C语言课设)
|
3月前
|
C语言
链接未来:深入理解链表数据结构(二.c语言实现带头双向循环链表)
链接未来:深入理解链表数据结构(二.c语言实现带头双向循环链表)
31 0
|
4月前
|
测试技术
LeetCode | 141.环形链表(C语言版)
LeetCode | 141.环形链表(C语言版)
28 1
|
4月前
|
算法 测试技术
LeetCode | 206.反转链表(C语言版)
LeetCode | 206.反转链表(C语言版)
31 0
|
4月前
|
测试技术
LeetCode | 24.两两交换链表中的节点(C语言版)
LeetCode | 24.两两交换链表中的节点(C语言版)
33 0
|
29天前
|
存储 C语言 索引
在C语言中静态链表
在C语言中静态链表
17 1