使用指针处理单向链表

 2023-02-27 15:55:17  阅读 0

一、链表的概念

链表是由一系列结点组成的,每个结点又由两部分构成:一部分为数据域,用来保存用户需要用到的数据,它可以由多个数据项构成;另一部分为地址域,它是指向下一个结点的地址指针,用来保存下一结点的地址。

二、单链表的定义以及使用

struct node
  {
      int num;
      struct node *next;	//定义指向结构体自身的指针
  };

链表操作:

①建立一个链表;  

②输出链表中的数据;

③往链表中插入一个结点;

④从链表中删除一个结点。

三、用指针处理单向链表

#include <stdio.h>
#include<stdlib.h>
struct node
{
 int data;
 struct node *next;
};
struct node *creat(struct node *head) 
{
 struct node *p1, *p2;
p1 = (struct node*) malloc(sizeof(struct node)); 
 p2=p1;
 scanf("%d", &p1 -> data);                       
 p1 -> next = NULL;                     
 while(p1 ->data!= 0)
 {
  if(head == NULL) head = p1;                   
  else   p2 -> next = p1; 
p2 = p1;
p1 = (struct node *)malloc(sizeof(struct node)); 
	 scanf("%d", &p1 -> data);          
	}
	p2->next = NULL;
	return head;                             
}
void print(struct node *head) 
{
  struct node *temp;
  temp = head;                             
  while(temp != NULL)                 
  {
		printf("%6d", temp -> data);        
        temp = temp -> next;              
    }
    printf("\n");
}
int main()
{
      struct node *head;                       //定义头指针
      head = NULL;                         //建一个空表
      head = creat(head);                     //创建单链表
      print(head);                           //打印单链表
      return 0;
}

程序运行结果如下:

1 2 3 4 5 6

1 2 3 4 5 6

四、共用体

C语言提供了一种构造类型的数据——共用体,它和结构体类似,也 是一种由用户自己定义的数据类型,也可以由若干不同类型的数据组合而 成,组成共用体的若干个数据也称为其成员。和结构体不同的是,结构体 变量每个成员分别占有各自的内存单元,共用体变量各个成员都从同一 地址开始存放,即成员间互相覆盖。

先定义共用体类型,再定义共用体变量。一般格式为:

共用体类型名  变量名列表;

union data
  {
		int i;
		char c;
		float f;
  };
  union data d1,d2;

关注我 下篇文章继续讲共用体

标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码