顺序表插入实现
顺序表的插入实现 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; }
相关热词搜索: 插入 顺序热门文章:
- 2024年度《榜样力量》(第二...2023-12-29
- (合集)有关于打造清廉国企...2023-12-26
- 2024思政教师培训材料:社会...2023-12-25
- 药物质检年度工作总结报告范...2023-12-07
- 两会期间系列重要讲话精神学...2023-12-07
- 专题节目《榜样7》观后感通用...2023-12-07
- 学生会竞选精彩演讲稿6篇2023-12-06
- 甄选开学会领导精彩讲话稿汇...2023-12-06
- 落实全面从严治党主体责任清...2023-12-06
- 中国梦我的梦演讲稿通用范文3篇2023-12-06
相关文章: