当前位置: 首页 > news >正文

网站上线测试/重庆森林经典台词罐头

网站上线测试,重庆森林经典台词罐头,夫唯seo系统培训,天津做国外网站实验1 1顺序表的操作 ① 随机产生一组2位整数,建立线性表的顺序存储结构,要求表中元素互不相同。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指定元素。…

实验1

1顺序表的操作

① 随机产生一组2位整数,建立线性表的顺序存储结构,要求表中元素互不相同。

② 实现该线性表的遍历。

③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。

④ 在该顺序表中删除或插入指定元素。

⑤ 建立两个按值递增有序的顺序表,将他们合并成一个按值递减有序的顺序表。

2单链表的操作

① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。

② 实现该线性表的遍历。

③ 实现单链表的就地逆置。

④ 建立两个按值递增有序的单链表,将他们合并成一个按值递增有序的单链表。要求利用原来的存储空间,并且新表中没有相同的元素。

代码

1,少部分用了c++引用

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
struct List{int *list;int size;int len;
};
void swap(int &a,int &b)
{int t = a;a = b,b = t;
}
void init(List &list,int size,int len)
{list.list = (int*)malloc(sizeof(int)*size);///申请空间list.size = size;list.len = len;int vis[101] = {0};///标记数组for(int i=0;i<len;i++){int x = rand()%90+10;if(vis[x]){i--;continue;}list.list[i] = x;vis[x] = 1;}
}
int insert(List &list,int val,int pos)
{if(pos<0||pos>=list.len)return -1;if(list.len == list.size)///原空间不足,申请二倍list.list = (int*) realloc(list.list,sizeof(list)*2*list.size),list.size*=2;for(int i=list.len-1;i>=pos;i--)list.list[i+1] = list.list[i];list.list[pos] = val;list.len++;return 1;
}
int search(List list,int x)
{for(int i=0;i<list.len;i++)if(list.list[i] == x)return i;return -1;
}
int Delete(List &list,int pos)
{if(pos<0||pos>=list.len)return -1;for(int i=pos;i<list.len;i++)list.list[i] = list.list[i+1];list.len--;return 1;
}
void Merge(List list1,List list2,List &list3)
{list3.len = list1.len+list2.len;int i,j,k;i = 0,j = 0,k = list1.len+list2.len-1;for(int l = 0,r = 0;l<list1.len&&r<list2.len;)///去重{if(list1.list[l]==list2.list[r])k--,l++,r++,list3.len--;else if(list1.list[l]>list2.list[r])r++;elsel++;}while(i<list1.len && j<list2.len && k+1)///倒着扫一遍{if(list1.list[i]==list2.list[j]){list3.list[k--] = list1.list[i];i++,j++;}else if(list1.list[i]>list2.list[j])list3.list[k--] = list2.list[j++];elselist3.list[k--] = list1.list[i++];}while(i<list1.len)list3.list[k--] = list1.list[i++];while(j<list2.len)list3.list[k--] = list2.list[j++];
}
void Sort(List &list)///冒泡排序
{for(int i=0;i<list.len;i++)for(int j=i+1;j<list.len;j++)if(list.list[i]>list.list[j])swap(list.list[i],list.list[j]);
}
void Bianli(List list)
{for(int i=0;i<list.len;i++)printf("%d ",list.list[i]);printf("\n");
}
int main()
{srand(time(0));List lis1,lis2,lis3;init(lis1,100,3),init(lis2,100,3);init(lis3,100,0);Sort(lis1),Sort(lis2);for(int i=0;i<lis1.len;i++)printf("list1:%d\tlist2:%d\n",lis1.list[i],lis2.list[i]);printf("----------------------------\n");Merge(lis1,lis2,lis3);for(int i=0;i<lis3.len;i++)printf("list3:%d---%d\n",i,lis3.list[i]);insert(lis3,1111,2);printf("----------------------------\n");for(int i=0;i<lis3.len;i++)printf("list3:%d---%d\n",i,lis3.list[i]);printf("----------------------------\n");Delete(lis3,2);for(int i=0;i<lis3.len;i++)printf("list3:%d---%d\n",i,lis3.list[i]);printf("%d\n",search(lis3,lis1.list[1]));Bianli(lis1);return 0;
}

2,c++类实现

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
class List{private:struct Lst{int data;Lst *next;}head,*tail;int len;public:List(){head.next = NULL;tail = &head;len = 0;}bool Listempty(){return !head.next;}int GetList(int x){if(x<0||x>len){printf("error\n");return -1;}int cnt = 0;Lst Find = head;while(cnt<x && Find.next){cnt++;Find = *Find.next;}return Find.data;}int GetListlen(){return len;}void Listinsert(int val,int pos){int cnt = 0;Lst *Find = &head;while(cnt<pos-1 && Find->next){cnt++;Find = Find->next;}Lst *p = new Lst;p->data = val;p->next = Find->next;Find->next = p;len++;}void ListInsert(int val){Lst *p = new Lst;p->data = val;p->next =  NULL;tail->next = p;tail = p;len++;}void ListDelete(int x){int cnt = 0;Lst *Find = &head;while(cnt<x-1 && Find->next){cnt++;Find = Find->next;}Lst *p = Find->next;Find->next = p->next;delete p;len--;}void Ergodic(){Lst *p = head.next;while(p){printf("%d ",p->data);p = p->next;}printf("\n");}void reverse(){///头插法恰好是反序的,所以拆掉当前链表的同时头插法建立一个新的即可Lst *p = head.next;Lst *fp = new Lst;Lst *ep;fp->next = NULL;while(p){ep = p->next;p->next = fp->next;fp->next = p;p = ep;}head.next = fp->next;delete fp;}friend void Merge(List &a,List &b);
};
void Merge(List &a,List &b){List::Lst *pa = a.head.next,*pb = b.head.next,*head,*tail,*del;b.len = 0;b.head.next = NULL;int len = 0;if(pa->data < pb->data)head = pa,pa = pa->next;elsehead = pb,pb = pb->next;tail = head;while(pa&&pb){if(pa->data==pb->data){if(pa->data!=tail->data)tail->next = pa,tail = pa,pa = pa->next,len++;elsepa = pa->next,pb = pb->next;}else if(pa->data < pb->data){tail->next = pa,tail = pa,pa = pa->next,len++;}elsetail->next = pb,tail = pb,pb = pb->next,len++;}while(pa)tail->next = pa,tail = pa,pa = pa->next,len++;while(pb)tail->next = pb,tail = pb,pb = pb->next,len++;tail->next = NULL;a.head.next = head;a.len = len;
}
int main()
{List a,b,c;c.ListInsert(5);c.ListInsert(4);c.ListInsert(3);a.ListInsert(1);a.ListInsert(7);a.ListInsert(9);int len = c.GetListlen();c.Ergodic();c.reverse();c.Ergodic();a.Ergodic();Merge(c,a);a.Ergodic();c.Ergodic();return 0;
}

实验2

1输入一个十进制数,利用栈操作,将该数转换成n进制数。

2输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。

 

二合一,纯c语言

#include <stdio.h>
#include <stdlib.h>
#include <math.h>//Compiler version gcc 6.3.0
typedef union base{int _int;char _char;long l_int;long long ll_int;
}base;
typedef struct Stack{base *p;int *state;int size,len;
}Stack;
void init(Stack *x){(*x).p = (base*)malloc(sizeof(base)*30);(*x).state = (int*)malloc(sizeof(int)*30);(*x).size = 30,(*x).len = 0;
}
void top(base *e,int *s,Stack x){if(x.len)*e = x.p[x.len-1],*s = x.state[x.len-1];
}
void pop(Stack *x){if((*x).len)(*x).len--;
}
void push(base val,int s,Stack *x){if((*x).len==(*x).size){(*x).p = (base*)realloc((*x).p,(*x).size*sizeof(base)*2);(*x).state = (int*)realloc((*x).state,(*x).size*sizeof(int)*2);(*x).size *= 2;}(*x).p[(*x).len] = val;(*x).state[(*x).len] = s;(*x).len++;
}
int empty(Stack x){return !x.len;
}
void clear(Stack *x){(*x).len = 0;
}
void cout(base x,int s){switch (s){case 0:printf("%d",x._int);break;case 1:printf("%c",x._char);break;case 2:printf("%ld",x.l_int);break;case 3:printf("%lld",x.ll_int);}
}
void Changebase(){Stack A;init(&A);int n,R;while(~scanf("%d%d",&n,&R)){int tn = n;while(n){int y = n%R,s;base x;if(y<10)s = 0,x._int = y;else s = 1,x._char = y-10+'A';push(x,s,&A);n/=R;}printf("%d change to %d base is ",tn,R);while(!empty(A)){int s;base e;top(&e,&s,A);pop(&A);cout(e,s);}printf("\n");}
}
void check(){Stack A;init(&A);char a[1000];while(~scanf("%s",a)){int flag = 0;for(int i = 0; a[i] ; i++){if(a[i]=='('||a[i]=='['||a[i]=='{'){base x;x._char = a[i];push(x,1,&A);}else if(a[i]==')'||a[i]==']'||a[i]=='}'){base c;int s;if(empty(A)){flag = 1;break;}top(&c,&s,A);if(c._char=='{'&&a[i]=='}')pop(&A);else if(c._char=='('&&a[i]==')')pop(&A);else if(c._char=='['&&a[i]==']')pop(&A);elsebreak;}}printf("%s\n",(empty(A)&&!flag)?"Yes,match success!":"No,can't match!");clear(&A);}
}
int main()
{///Changebase();check();return 0;
}

 

http://www.jmfq.cn/news/4951963.html

相关文章:

  • 网站制作理念/谷歌seo推广服务
  • wordpress支付平台/惠州seo外包服务
  • 葫芦岛市城乡建设局网站/温州企业网站排名优化
  • 什么网站程序做资料库/seo网站优化知识
  • 南昌做网站开发的公司/产品如何推广市场
  • 江苏城乡建设厅官方网站/网站网络排名优化方法
  • 做网站的费用记哪个科目/百度手机助手app官方下载
  • 换模板搭建网站怎么做/信息流广告投放公司
  • 现在网络公司做网站是用cms还是新版编程_/站长论坛
  • 用本机做网站浏览/网站优化公司大家好
  • 外汇网站建设制作/营销策划方案ppt模板
  • 正规的饰品行业网站开发/杭州seo网站推广
  • 江苏专业网站推广公司哪家好/外贸营销型网站设计
  • 白云区做网站公司/推广自己产品的文案
  • 南京网站制作价格/西安全网优化
  • 武汉网站推优化公司/百度收录排名查询
  • app介绍类网站模板/郑州官网网站推广优化
  • 多多进宝怎么推广赚钱/seo视频网页入口网站推广
  • 腾讯公众号怎么上传wordpress/百度免费seo
  • ps如何做网站首页/网络上如何推广网站
  • 邵阳 做网站公司/友情链接软件
  • 凤山县住房和城乡建设局网站/网络营销平台有哪些?
  • 商品详情页面模板html/seo优化的内容有哪些
  • 昆山苏州网站建设/微信公众号营销
  • 上海外贸网站建/免费十八种禁用网站
  • 自己做的网站套dedecms教程/腾讯云域名购买
  • 自己做游戏的 网站/哪些平台可以免费推广
  • 手机平板购物网站的设计背景/网络营销的认识与理解
  • 企业网站诊断与优化方案/百度应用商店下载
  • 大连地区建设网站/小红书seo