今日所学-----线性表的插入与删除

本文探讨了线性表的基本应用,主要聚焦于线性表中元素的插入和删除操作,深入解析相关算法及其在数据结构中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线性表的基础应用

#include<iostream>
using namespace std;
#include<stdlib.h>


typedef struct LNode *PtrToLNode;//把结构体做为指针 

#define MAXSIZE 10

struct LNode{
   int Data[MAXSIZE];
   int Last;//未定义时,都是0,随着下标 
};//用结构体构造链表 
typedef PtrToLNode List;//类型定义,类似于define ,只不过作用域不同 

List MakeEmpty(){
    List P;
    P = (List)malloc(sizeof(struct LNode));//malloc 
    (*P).Last = -1;//last代表数组下标 
    return P;
}
bool Insert(List L,int n,int x){   //注意:该函数使用的是bool型,所以判断只能用true or false 
    if(L->Last == MAXSIZE - 1)
    {
        printf("表满");
        return false;
    }
   else if(n<1 || n>L->Last+1+1){
        printf("位序不合法");
        return false;
    }
   else{
    for(int j = L->Last;j>=n-1;j--)
    {
        L->Data[j+1] = L->Data[j];
    }
    L->Data[n-1] = x;
    L->Last++;//线性表扩大 
    for(int i = 0 ; i<L->Last+1;i++)
       {printf("%d  ",L->Data[i]);
		} 
    return true;
	return L;}
}
bool Delete(List L,int n){
	if(n<1||n>L->Last+1){
		printf("删除的位置错误");
		return false; 
	}
	else{
		for(int i=n-1;i<L->Last;i++){
			L->Data[i]=L->Data[i+1]; 
		}
		for(int i = 0 ; i<L->Last;i++)
       {printf("%d  ",L->Data[i]);
		} 
		return true;
	}
}


int main(){
    List L;
    int t,j,n,k,m,p;
	L = MakeEmpty();
    printf("输入线性表中元素的个数(建议不超过10个):\n");
    scanf("%d",&m);
    L->Last=m-1;
    printf("选择模式:插入或者删除(1代表添加,2代表删除)");
	cin>>k;
		if(k==2){
			printf("输入线性表的元素:\n") ;
    for(int i = 0 ; i<L->Last+1;i++)
       {cin>>L->Data[i]; 
		
	printf("选择删除第几号的数字:\n") ;
	scanf("%d",&n);
	Delete(L,n);}
   if(k==1){
   	printf("输入线性表的元素:\n") ;
   	for(int i = 0 ; i<L->Last+1;i++)
       {cin>>L->Data[i]; 
		} 
		printf("添加的数字的位置和数字:\n");
		scanf("%d%d",&t,&j);
		Insert(L,t,j);
		
   }

    return 0;}}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值