飞扬范文网
当前位置 首页 >范文大全 > 观后感 >

顺序表插入实现

发布时间:2021-09-28 15:35:12 浏览数:

 顺序表的插入实现 int InsertList(SeqList *L,DataType t,int i) {//将 t 插入顺序表 L 的第 i 个结点的位置上 int j; if (i<1||i>L->length+1) { puts("插入位置错");return 0; } if (L->length>=ListSize) { puts("表满不能插入");return 0; } for(j=L->length-1;j>=i-1;j--) L->data[j+1]=L->data[j];//结点依次后移 L->data[i-1]=t;//插入 t L->length++;//表长加 1 return 1; } 顺序表的删除实现 int DeleteList(SeqList *L,int i) {//从顺序表 L 中删除第 i 个结点 int j; if (i<1||i>L->length) { puts("删除位置错");return 0; } if (L->length==0) { puts("空表不能删除");return 0; } for(j=i;j<=L->length-1;j++) L->data[j-1]=L->data[j];//结点依次前移 L->length--;//表长减 1 return 1; } 链表的插入实现 int InsertList(LinkList head,DataType x,int i)

 {//将值为 x 的新结点插入到带头结点的单链表 head 的第 i 个结点的位置上

 ListNode *p,*s;

 p=GetNode(head,i-1); //寻找第 i-1 个结点

  if(p==NULL)

 {

  printf("未找到第%d 个结点",i-1);return 0;

 }

 s=(ListNode *)malloc(sizeof(ListNode));

 if(s==NULL)

 {

  printf("申请存储空间失败!");return 0;

 }

 s->data=x;

 s->next=p->next;

 p->next=s;

 return 1; } 链表的删除实现 int DeleteList(LinkList head,int i)

 {//删除带头结点的单链表 head 上的第 i 个结点

 ListNode *p,*r;

 p=GetNode(head,i-1); //找到第 i-1 个结点

 if(p==NULL||p->next==NULL)

 {

  printf("未找到第%d 个结点或第 d%个结点不存在。\n",i-1,i); return 0;

 }

 r=p->next;

  //使 r 指向被删除的结点 a i

  p->next=r->next;

 //将 a i 从链上摘下

 free(r);

 //释放结点 a i 的空间

 return 1; }

相关热词搜索: 插入 顺序