数据结构——线性表—— 2016_10_13

数据结构——线性表—— 2016_10_13自己做的 只有插入和删除 不过基本原理就这样

                                                                      

                                                                   数据结构之线性表(C语言版)

 

 

#include 
  
    #include 
   
     #define List_Init_Size 100 #define LISTINCREMENT 10 //定义线性表结构 typedef struct{ int *elem; int length; int Listsize; }Sqlist; //初始化线性 void InitList_sq(Sqlist *L){ (*L).elem=(int *)malloc(List_Init_Size*sizeof(int)); if(!(*L).elem) exit(0); (*L).length=0; (*L).Listsize=List_Init_Size; } //插入线性表 void ListInsert_sq(Sqlist * L,int i,int e){ int *newbase; int *p,*q; if( i<1||i>(*L).length+1) exit(0); if((*L).length>=(*L).Listsize){ //注意:此处的>=是严蔚敏书上说的。其实==也行,因为length是递增的。我在VC++6.0上实验通过。 newbase=(int *)realloc((*L).elem,((*L).Listsize+LISTINCREMENT)*sizeof(int)); if(!(*L).elem) printf("meiyou\n"); (*L).elem=newbase; (*L).Listsize+=LISTINCREMENT; } q=&((*L).elem[i-1]); for(p=&((*L).elem[(*L).length-1]);p>=q;p--) *(p+1)=*p; *q=e; (*L).length++; } //删除节点 void Listdel_sq(Sqlist *L,int i){ int *q,*p; if((i<1)||(i>(*L).length)) exit(0); q=&((*L).elem[i-1]); for(p=&((*L).elem[(*L).length-1]);q<=p;q++) *(q)=*(q+1); (*L).length--; } //打印线性表 void Listprint_sq(Sqlist * L){ int i; for(i=1;i<=(*L).length;i++) { printf("%d ",(*L).elem[i-1]); printf("%d\n",&(L->elem[i-1])); //输出变量地址 } } //主函数 int main(){ Sqlist M; int i,k,x,y; InitList_sq(&M); printf(" 初始化线性表.......\n"); for(i=1;i<=12;i++) ListInsert_sq(&M,i,i); printf("十二个数字的线性表已经建立\n"); Listprint_sq(&M); printf("~~~~~~~~~~~请输入序号进行操作:\n"); printf("1:插入 2:删除 3:退出\n"); scanf("%d",&k); while(k!=3){ switch(k) { case 1: printf("请输入要插入元素的位置和值\n"); scanf("%d%d",&x,&y); ListInsert_sq(&M,x,y); Listprint_sq(&M); break; case 2: printf("请输入要删除元素的位置\n"); scanf("%d",&x); Listdel_sq(&M,x); Listprint_sq(&M); break; default: printf("非法输入\n"); } printf("~~~~~~~~~~~~~~~~~~~请输入序号进行操作:\n"); printf("1:插入 2:删除 3:退出\n"); scanf("%d",&k); } exit(0); return 0; } 
    
  

 

 

 

 

 

程序运行图:

数据结构——线性表—— 2016_10_13

 

 

 

                                

                                                                         

                                                                                                                                                                 2016_10_13

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216090.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午12:34
下一篇 2026年3月18日 下午12:35


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号