数据结构实验练习.docx

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef struct list { ElemType *elem;//指针定义数组 int listsize; int length; }Sqlist; void initlist_sq(Sqlist *L) { L->elem=(ElemType *)malloc(MAXSIZE*sizeof(ElemType)); if(!L->elem) exit(0); L->length=0; L->listsize=MAXSIZE; } //在线性表L的第n个元素之前插入元素x void insert_sq(Sqlist *L,int n,ElemType x) { int i; //检查插入位置n的合法性 if( n < 1 || n > L->length + 1 ) { printf("插入的位置n 非法!\n"); return; } //检查线性表是否为满 if( L->length >= L->listsize ) { printf("线性表满了!\n"); return; } //插入点之后的元素循环后移一个位置 for( i = L->length; i >= n; i--) L->elem[i] = L->elem[i-1]; //将代插入的元素存入到下标为n-1的位置 L->elem[n-1] = x; //修改线性表的长度 L->length++; } //利用插入方法实现创建指定长度的线性表L void creat_sq(Sqlist *L) { int tablen,i=1; ElemType temp; printf("请输入顺序表的长度\n"); scanf("%d",&tablen); printf("请输入 %d 个数据\n",tablen); do { //输入待插入的元素 temp scanf("%d",&temp); //将元素temp 插入到线性表L的第i个位置 insert_sq(L,i,temp); //修改i的值,以便下一次进行插入 i++; }while((i<=tablen)&&(i<L->listsize )); } //打印线性表中的所有元素 void display_sq(Sqlist *L) { int i; i=0; do { //打印线性表L中下标为i的元素 printf("%d\t",L->elem[i]); } while(++i<L->length); printf("\n**********顺序表打印完毕**********\n\n"); } //在线性表L中查找元素x,若存在范围其位置;若不存在返回0 int Search_sq(Sqlist *L,ElemType x) { int i; i=0; do { //比较线性表中下标为i的元素与指定值x是否相等,若相等,返回其位置i+1 if( L->elem[i] == x ) return i+1; }while(++i<L->length); return 0; } //查找线性表L中的第n个元素,返回其值 ElemType Search_sq_byV(Sqlist *L,int n) { //检查n的取值是否合法,若非法返回0 if( n < 1 || n > L->length ) return 0; //若n取值合法,返回线性表L中下标为n-1的元素 return L->elem[n-1]; } //删除线性表L中的第n个元素 void delete_sq(Sqlist *L,int n) { int i; //检查删除的位置n的合法性 if( n < 1 || n > L->length ) { printf("删除的位置n非法!\n"); exit(0); } //若n合法,则删除点之后的元素循环向前移动一个位置 i = n; do { //删除点之后的元素前移一个位置 L->elem[i-1] = L->elem[i]; }while(++i<L->length); //线性表长度减少1 L->length--; printf("\n**********%d deleted**********\n",n); } int main(v

文档评论(0)

东山书苑 + 关注
实名认证
内容提供者

业务以学生学习成长为中心,为外语培训、中小学基础教育、学前教育,提供各种学习资料支持服务。

1亿VIP精品文档

相关文档