线性表的插入和删除操作代码(C语言)

新建一个线性表,插入一个元素和删除一个元素.怎样实现... 新建一个线性表,插入一个元素和删除一个元素.怎样实现 展开
 我来答
匿名用户
2013-10-21
展开全部
给个实例给你看看吧
#include<stdio.h>
#include<stdlib.h>

struct node
{
int data;
struct node* pNext;
} ;

struct node* create()
{
struct node* pHead = NULL;
struct node* pTail = NULL;
struct node* pNode = NULL;
int x=0;
printf("\n请输入一个整数:");
scanf("%d",&x);
while(x!=0)
{
pNode = (struct node*)malloc(sizeof(struct node));
pNode->data = x;
pNode->pNext = NULL;
if (pHead==NULL)
{
pHead = pTail = pNode;
}
else
{
pTail->pNext = pNode;
pTail = pNode;
}
printf("\n请输入一个整数:");
scanf("%d",&x);
}
return (pHead);
}

void main(void)
{
struct node* qNode = NULL;
qNode = create();
printf("The data of link:\n");
while (qNode!=NULL)
{
printf("%d\t",qNode->data);
qNode = qNode->pNext;
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-11-25
展开全部
#include<stdio.h>#define MAXSIZE 10#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -1typedef struct{int elem[MAXSIZE];int length;}SeqList;void init_SeqList(SeqList *l){l->length=0;}/*顺序表初始化*/int Insert_SeqList(SeqList *l,int i,int x){int j; if(l->length==MAXSIZE-1) {printf("表满"); return OVERFLOW; } if(i<1||i>l->length+1) {printf("位置错"); return ERROR;} for(j=l->length;j>=i;j--) l->elem[j+1]=l->elem[j]; l->elem[i]=x; l->length++; return OK;}/*顺序表插入*/int Delete_SeqList(SeqList *l,int i){int j; if(i<1||i>l->length) {printf("不存在第%d个元素",i); return ERROR; } for(j=i;j<=l->length-1;j++) l->elem[j]=l->elem[j+1]; l->length--; return OK;}/*删除操作*/int Location_SeqList(SeqList *l,int x){int i=1; while(i<=l->length&&l->elem[i]!=x) i++; if(i>l->length) return -1; else return i;}void Create_SeqList(SeqList *l){int i,n,m; printf("输入表的长度:\n"); scanf("%d",&n); l->length=n; printf("请输入数值:\n"); for(i=1;i<=n;i++) {scanf("%d",&m); l->elem[i]=m; }}void Print_SL(SeqList *l) {int i; printf("The List is:\n"); for(i=1;i<=l->length;i++) printf("%3d",l->elem[i]); }void main(){SeqList a; int i,x,ch; init_SeqList(&a); Create_SeqList(&a); printf("请选择:1.插入 2.删除: "); scanf("%d",&ch); switch(ch){ case 1:printf("请输入位置和数值:\n"); scanf("%d%d",&i,&x); Insert_SeqList(&a,i,x); break; case 2:printf("请输入要删除的位置\n"); scanf("%d",&i); Delete_SeqList(&a,i); break; default: exit(0); } Print_SL(&a);}下面是我的百度贴吧,里面有一些数据结构算法用C实现的代码: http://tieba.baidu.com/f?ct=&tn=&rn=&pn=&lm=&kw=%C4%AB%BD%B3&rs2=0&myselectvalue=1&word=%C4%AB%BD%B3&submit=%B0%D9%B6%C8%D2%BB%CF%C2&tb=on
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-21
展开全部
都是课本上的东西!!! 好好看看C语言和数据结构
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-21
展开全部
顺序表还是链表?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式