博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言链表
阅读量:5965 次
发布时间:2019-06-19

本文共 2891 字,大约阅读时间需要 9 分钟。

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("溢出!\n");//溢出,不能插入 28     if(i<1||i>Length(A)+1)printf("插入范围有错!\n");//插入范围有错 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("序号错误!\n"); 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\n"); 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\n",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\n",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\n",head->next);127     printf("head->num %d\n",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 }

 

转载于:https://www.cnblogs.com/minmsy/p/5084403.html

你可能感兴趣的文章
PostgreSQL update tbl1 from tbl2 一对多的注意事项(到底匹配哪条)
查看>>
Oracle创建用户、表(1)
查看>>
sqoop 把 hdfs 和关系型数据库 (mysql等)互导
查看>>
Android 即时通讯开发
查看>>
PostgreSQL 9.6 IO Hang问题浅析与优化
查看>>
spring事务管理的一些注意点
查看>>
SI和DI寄存器(0703)
查看>>
Redis开发运维实践数据操作之HyperLogLog操作
查看>>
【Spark Summit EU 2016】沃森媒体分析系统:从单租户Hadoop到3000租户Spark的架构演进...
查看>>
Javascript in one picture
查看>>
Spark调优经验总结
查看>>
容错性
查看>>
Linux下套接字详解(二)----套接字Socket
查看>>
OceanBase云平台简介
查看>>
【转载】MySQL -- SET NAMES utf8
查看>>
从尿检取中段谈数据库压测
查看>>
Android 中文API (38) —— Spinner
查看>>
NodeJs——(8)http.ServerRequest的过程
查看>>
QEMU 源代码阅读经验开山之作
查看>>
Android 中文 API (25) —— ZoomControls
查看>>