zoukankan      html  css  js  c++  java
  • C语言链表

      1 #include"stdio.h"
      2 #include"stdlib.h"
      3 #include"malloc.h"
      4 
      5 
      6 const int maxlen=1000;//线性表的最大长度
      7 
      8 //------------线性表------------------
      9 struct List
     10 {
     11     int Data[maxlen];//存放数据
     12     int CurNum;//当前线性表
     13 };
     14 
     15 void Intialize(    List &A)//线性表初始化
     16 {
     17     A.CurNum = 0;//线性表元素个数为0
     18 }
     19 
     20 int Length(List &A)//求表长度的实现
     21 {
     22     return A.CurNum;
     23 }
     24 
     25 int Insert(    List &A,const int i,const int x)//插入元素运算对应的函数
     26 {
     27     if(A.CurNum==maxlen)printf("溢出!
    ");//溢出,不能插入
     28     if(i<1||i>Length(A)+1)printf("插入范围有错!
    ");//插入范围有错
     29     else {
     30         for(int j=A.CurNum-1;j>=i-1;j--){
     31             A.Data[j+1]=A.Data[j];
     32         }
     33         A.Data[i-1]=x;
     34         A.CurNum++;
     35         return 0;
     36     }
     37 }
     38 int  Get_int(List &A,const int i,int &x)//按序号取元素运算
     39 {
     40     if(i<=0||i>A.CurNum)printf("序号错误!
    ");
     41     else {
     42         x=A.Data[i-1];
     43         return 0;
     44     }
     45 }
     46 //------------线性表------------------
     47 
     48 
     49 //-------------链表------------------
     50 typedef char type;
     51 typedef struct Linklist
     52 {
     53     type data;
     54     struct Linklist *next;
     55 }link_list;
     56 
     57 /*创建链表*/
     58 link_list *Create_list(link_list *head)
     59 {
     60     head = (link_list *)malloc(sizeof link_list);
     61     if(head==NULL)
     62     {
     63         printf("setup fail
    ");
     64 
     65         exit(0);
     66     }
     67     head->data=NULL;
     68     head->next=NULL;
     69     return head;
     70 }
     71 
     72 /*向链表中插入一个元素*/
     73 void Insert_list(link_list *head,type data)
     74 {
     75     link_list *q=NULL;
     76     link_list *p=NULL;
     77     link_list *s=NULL;
     78     q=head;
     79     p=q->next;
     80     while(p!=NULL)
     81     {
     82         q=p;
     83         p=q->next;
     84     }
     85     s=(link_list *)malloc(sizeof link_list);
     86     s->data = data;
     87     q->next=s;
     88     s->next=p;
     89 }
     90 
     91 void browse(link_list *head)
     92 {
     93     link_list *q=NULL;
     94     q=head->next;
     95     while(q!=NULL)
     96     {
     97         printf("num:%c
    ",q->data);
     98         q=q->next;
     99     }
    100 }
    101 
    102 
    103 /*查找元素 并返回位置*/
    104 link_list *find_list(link_list *head,int data)
    105 {
    106     link_list *q=NULL;
    107     link_list *p=NULL;
    108     q=head;
    109     p=q->next;
    110     while(p!=NULL&&p->data!=data)
    111     {
    112         q=p;
    113         p=q->next;
    114     }
    115     printf("num :%c data : %c
    ",p->data);
    116     return p;
    117 }
    118 int  main()
    119 {
    120     int middle=0;
    121     int num=0;
    122     int i=0;
    123     link_list *head = NULL;
    124     link_list *s = NULL;/*接收指针 case3的指针接收*/
    125     head=Create_list(head);
    126     printf("head->next %d
    ",head->next);
    127     printf("head->num %d
    ",head->data);
    128 
    129 
    130 
    131     
    132         Insert_list(head,'a');
    133         Insert_list(head,'b');
    134         Insert_list(head,'c');
    135         //'A'++;
    136     
    137     browse(head);
    138     
    139 
    140     //List A,B,C;
    141     
    142     return 0;
    143 }
  • 相关阅读:
    SpringBoot快速入门(三)
    分布式解决方案
    计算机网络-自顶向下方法第六章
    计算机网络-自顶向下方法第四章
    springcloud记录
    计算机网络-自顶向下方法第三章
    springboot整合kafka
    计算机网络-自顶向下方法第二章
    计算机网络-自顶向下方法第一章
    Spring常用注解【经典总结】
  • 原文地址:https://www.cnblogs.com/minmsy/p/5084403.html
Copyright © 2011-2022 走看看