当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

求c语言高手解上机实验:顺序表的查找插入与删除

更新:12-24 整理:39baobao.com
字体:

[计算机基础上机心得]word的使用:1.nbsp;一定要使用样式,除了Word原先所提供的标题、正文等样式外,还可以自定义样式。如果你发现自己是用选中文字然后用格式栏来设定格式的,一定要注意,想想其他地方是...+阅读

#include#include#define N 10 //顺序表的最大容量 int length=0; //顺序表的当前元素个数#define TRUE 1 #define FALSE 0 #define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define LIST_INIT_SIZE 100//线性表存储的空间初始化分配量#define LISTINCREAMENT 10 //线性表存储空间的分配增量 typedef struct LNode//线性单链表存储结构 { int data; struct LNode *next; }LNode,*LinkList; int CreatList_L(LinkList&L)//创建一个线性链表 { L=(LinkList)malloc(sizeof(LNode));//分配一个空间给链表,作为头结点 if(!L) exit(OVERFLOW); L->next=NULL; return OK; } int DestroyList_L(LinkList &L)//销毁链表 { if(L) free(L); return OK; } int ListInsert_L(LinkList&L,int i,int e)//再练表的第i个元素前插入一个元素e { LinkList p=L;//p指针定位于i-1 LNode *s; int j=0; while(p&jnext;j++;}//定位 if(!p||j>i-1) return ERROR;//如果i s=(LNode*)malloc(sizeof(LNode)); if(!s) exit(OVERFLOW); s->data=e; //完成插入操作 s->next=p->next; p->next=s; return OK; } int ListDelet_L(LinkList&L,int i,int&e)//删除链表L中的第i个元素,并返回给e; { LinkList p=L; LNode* q; int j=0; while(!p&jnext;j++;}//p指针定位于i-1; if(!p->next||j>i-1) return ERROR; e=p->next->data; //完成删除操作 q=p->next; p->next=p->next->next; free(q); return OK; } int ListTraverse_L(LinkList L,int n)//链表的遍历 { int i=0; if(!L)return ERROR; L=L->next; while(L) { if(L->data==n)return i; L=L->next; i++; } return FALSE; } int InverseSingleList_L(LinkList &L) { if(!L->next||!L->next->next)//如果链表少于2个Node那么链表不需要改变顺序 return OK; LNode *p,*q; p=L->next; //第一次因为p是最后一个连接所以把p->next设为空 q=p->next; p->next=NULL; p=q; while(p) { q=p->next; //用q去保留p后面一个Node; p->next=L->next; L->next=p; p=q; } return OK; } int main() { int List[N]; LinkList L; int ch,exit='N'; do { system("CLS"); printf("\t\t********************************************\n"); printf("\t\t* 1.创建一个顺序表 .........(1) *\n"); printf("\t\t* 2.在顺序表中查找元表.........(2) *\n"); printf("\t\t* 3.在顺序表中插入元表.........(3) *\n"); printf("\t\t* 4.在顺序表中删除元表.........(4) *\n"); printf("\t\t* 5.退出 .........(5) *\n"); printf("\t\t********************************************\n"); printf("\n请选择操作代码:"); ch=getchar(); switch(ch) { case '1': printf("\n请输入十个元素"); CreatList_L(L); for(length=0;length { scanf("%d",&List[length]); getchar(); ListInsert_L(L,length+1,List[length]); } printf("\n创建成功!"); getchar(); break; case '2': scanf("%d",&List[0]); if(ListTraverse_L(L,List[0]))printf("该元素存在该年表的第%d个位置",ListTraverse_L(L,List[0])); else printf("不存在该元素"); getchar(); break; case '3': scanf("%d%d",&length,&List[0]); ListInsert_L(L,length,List[0]); system("pause"); break; case '4': scanf("%d",&length); ListDelet_L(L,length,List[0]); system("pause"); break; case '5': printf("\n您是否真的要退出程序(Y/N):"); getchar(); exit=getchar(); break; default: getchar(); printf("\n无效输入,请重新选择...:"); getchar(); break; } }while(exit!='y'&exit!='Y'); }

本文地址:https://www.39baobao.com/show/29_14406.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

二级C语言一道上机题关于函数的递归调用if (n > 1) return (n*fun(n-1)); return 1; 如果 n>1 执行 return (n*fun(n-1)); 否则执行 return 1; 因为 main 函数里调用的是 fun(10); 所以对于 fun 函数,入口参数 n 等于10;...

求一份java上机实验心得 300字左右在这一系列的实验中,我基本掌握了Java的编程规则、知识要点和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时,因正确的编出程序而带来的成就感让我...

毕业论文WORD排版问题那个插入分节符的具体步骤分如下三步就来完成: 第一步:分节(将文档分为3节) 光标定位在英文封面页的最后,插入 → 分隔符 → 分节符类型:下一页 → 按Delete键删除空白页(行) 将光标定位在目录页的最后,插入...

c语言程序编写插入C输出那个❤太麻烦了,输出*吧 #include int main(){ char p[5000]; int i; scanf("%s",p); for(i=0;p[i+1]!=0;i++){ if(p[i]printf("*%c%c",p[i],p[i+1]); i++;} else printf("*%...

哈理工C语言上机题库(已发到你的QQ邮箱中,请查收,以下是八套C++试题中的一套) 第一套 〖第1题〗『填 空』(1分) C++语言表达式5>2>7>8的值是【1】. 答案: 1). 0 〖第2题〗『填 空』(1分) 【1】是标准C++...

二级C语言上机题库怎么背啊这么多有什么技巧吗上机 上机方面我的观点可能和某些朋友的不大一致。有些人认为上机考试是随机抽题,有运气的成分,但我认为还是有技巧可寻的。 首先是加强上机操作练习。同样的一道题,在试卷上你...

关于二级c语言上机题库真么多字,楼主加分啊 题库很有用,应该说如果题库里面有一道题是求36的平方根,那么考试你就可能遇到求6的平方的题,以此类推,但是还是建议能够理解最好,买一本南开一百题,然后看完,之...

c语言程序设计上机实验#includeusing namespace std; int main(){ int day; int timeOfMon[] = {31,29,31,30,31,30,31,31,30,31,30,31}; printf("2012年日历 ==========\n"); int sumOfMon[13]; su...

09 C语言编程上机实验101.#include<iostream.h> void main() { int i=1;unsigned long int count=1; for(;i<=20;i++) { count=count*i; } cout<<"1-20的自然数之积为:"<<count<<endl; } 2.#include<i...