当前位置:   article > 正文

Leap Day5——数据结构与算法 线性表基础练习题_1.顺序表的存储结构定义。 2.创建顺序表,从键盘上依次输入21、18、30、75、42、56

1.顺序表的存储结构定义。 2.创建顺序表,从键盘上依次输入21、18、30、75、42、56

目录

 1、顺序表

 1.1  存储定义

1.2  构造顺序表

1.3  静态初始化顺序表

1.4  顺序表的元素输出

1.5  顺序表的 插入

1.6  顺序表的删除

1.7  顺序表的取值

1.8  顺序表的查找

2、单链表 

2.1  单链表的存储定义

 2.2  头插法创建单链表

 2.3  单链表的插入

2.4  单链表的删除

 2.5  单链表的取值

 2.6  单链表的查找


 1、顺序表

 1.1  存储定义

顺序表的存储定义 

  1. typedef struct{
  2.     int *elem;
  3.     int length;
  4. }SqList;

1.2  构造顺序表

顺序表的初始化,构造一个空的顺序表 

  1. void InitList(SqList &L){
  2.     L.elem = new int[MAXSIZE];
  3.     L.length = 0;

1.3  静态初始化顺序表

从键盘上依次输入21、18、30、75、42、56,创建顺序表。

  1. void InputList(SqList &L,int n){
  2.     int i;
  3.     for(i=0;i<n;i++){
  4.         scanf("%d",&L.elem[i]);
  5.         L.length++;    
  6.     }
  7. }

1.4  顺序表的元素输出

输出顺序表中的各元素值。

  1. void OutputList(SqList &L){
  2.     int i;
  3.     for(i=0;i<n;i++){
  4.         printf("%d",&L.elem[i]);
  5.     }
  6. }

1.5  顺序表的 插入

分别在顺序表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出顺序表中的各元素值。

  1. Status ListInsert (SqList &L,int i,int e){
  2.     if((i<1)||(i>L.length+1))    return ERROR;
  3.     if(L.length==MAXSIZE)    return ERROR;
  4.     for(int j=L.length-1;j>i-1;j--)
  5.         L.elem[j+1]=L.elem[j];
  6.     L.elem[i-1]=e;
  7.     ++L.length;
  8.     return OK;
  9. }

1.6  顺序表的删除

删除顺序表中的第6个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值。

  1. Status ListDelete(SqList &L,int i){
  2.     if((i<1)||(i>L.length))    return ERROR;
  3.     for(int j=i;j<L.length;j++)
  4.         L.elem[j-1]=L.elem[j];
  5.     --L.length;
  6.     return OK;
  7. }

1.7  顺序表的取值

取顺序表中的第5个数据元素和第7个数据元素。

  1. Status GetElem(SqList L,int i,int e){
  2.     if(i<1||i>L.length)    return ERROR;
  3.     e = L,elem[i-1];
  4.     return OK;

1.8  顺序表的查找

查找35,42是否在顺序表中,查找成功返回其位置信息,否则返回0。

  1. Status LocatElem(SqList L,int e){
  2.     for(int i=0;i<L.length;i++){
  3.         if(L.elem[i]==e)
  4.             return i+1;
  5.     }
  6.     return ERROR;
  7. }

2、单链表 

2.1  单链表的存储定义

单链表的存储定义

  1. typedef struct LNode{
  2.     ElemType data;
  3.     struct LNode *next;
  4. }LNOde,*LinkList;

 2.2  头插法创建单链表

从键盘上依次输入21、18、30、75、42、56,逆序创建单链表,并输出单链表中的各元素值。

  1. void GreateList(LinkList &L,int n){
  2.     L=(LinkList)malloc(sizeof(LNode));
  3.     //L = new LNode;
  4.     L->next = NULL;
  5.     for(i=n;i>0;i--){
  6.         p = new LNode
  7.         scanf("%d",&p->data);
  8.         p->next = L->next;
  9.         L->next = p;
  10.     }
  11. } //GreateList

 2.3  单链表的插入

分别在单链表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出单链表中的各元素值。

  1. Status ListInsert(LinkList &L,int i,ElemType e){
  2.     p=L;
  3.     j=0;
  4.     while(p&&j<i-1){
  5.         p=p->next;
  6.         ++j;
  7.     }
  8.     if(!p||j>i-1)
  9.         return ERROR;
  10.     s = new LNode;
  11.     s->data = e;
  12.     s->next = p->next;
  13.     p->next = s;
  14.     return OK;
  15. }//LinkList

2.4  单链表的删除

删除单链表中的第6个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值。(带头结点) 

  1. Status ListDelete(LinkList &L,int i,ElemType &e){
  2.     p=L;
  3.     j=0;
  4.     while(p->next&&j<i-1){
  5.         p=p->next;
  6.         ++j;
  7.     }
  8.     if(!p||j>i-1)
  9.         return ERROR;
  10.     q = p->next;
  11.     p->next = q->next;
  12.     e = q->data;
  13.     free(q);
  14.     return OK;

 2.5  单链表的取值

取单链表中的第5个数据元素和第7个数据元素(带头结点)

  1. Status GetElem(LinkList L,int i,ElemType &e){
  2.     p = L->next;
  3.     j=0;
  4.     while(p&&j-1){
  5.         p=p->next;
  6.         ++j;
  7.     }
  8.     if(!p||j>i)    return ERROR;
  9.     else    e=p->data;
  10.     return OK; 
  11. }//GetElem

 2.6  单链表的查找

在单链表中查找值为30和90的数据元素。

  1. Statue Locate(Linklist L,int e){
  2.     p = L->next;
  3.     j=0;
  4.     while(p&&p->data!=e){
  5.         p=p->next;
  6.         ++j;
  7.     } 
  8.     if(p)
  9.         return j; 
  10.     else
  11.         return ERROR;
  12. } //LocateElem L
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/427032
推荐阅读
相关标签
  

闽ICP备14008679号