文档章节

数据结构复习

E_C_Ares
 E_C_Ares
发布于 2017/09/11 10:41
字数 708
阅读 7
收藏 0

函数顺序储存 

链式索引储存

ham4ectv/32dtgeb6vplmc4sebc9.e8c4/cd6a/o/40

M8/隐码

 


 

 

 

 

有穷 确之 IO 可行

线性表

顺序表 链表

循环琏表 双链表 带头结点否 静态链表

#define maxSize 100

typedef struct{
  int data[maxSize];
  int length;
}

 

单链表

typedef struct lNode{
 int data;
 struct lNode *next;
}lNode

lNode *list1 = (lNode*)malloc(sizeof(lNode));
free(list1);

dlNode

typedef struct dlNode{
  int data;
  struct dlNode *pri
  struct dlNode *next
}

 

//查找等于E的位置
int findElem(sList L,int e){
  int i;
  for(i=0; i<L.length; ++i)
    if(L.data[i] == e) return i;
  return -1;
}

//插入e到 p
int insertElem(sList L, int p, int e){
  int i;
  if(p<0 || p>L.length || L.length == maxSize)  //不能插入后超长
    return 0;

  /*data属性变化*/
  for(i = L.length - 1; i >= p; i--)
    L.data[i+1] = L.data[i];
  L.data[p] = e; 

  /*length属性变化*/
  L.length ++;

  return 1;
}

//reverse
void reverse(sList &L)  //L改变
{
  int i, j;
  int temp;
  for(i=0, j=L.length-1; i<j; ++i, --j)
  {
    temp = L.data[i];
    L.data[i] = L.data[j];
    L.data[j] = temp;
  }
}

 

merge:

void sort_merge(lNode *A, lNode *B, lNode *&C) //为什么&??
{
  lNode *p = A -> next;
  lNode *q = B -> next;
  lNode *r;

  C = A;
  C -> next = NULL;

  free(B);
  
  r = C;
  while(p != NULL && q != NULL)
  {
    if(p -> data <= q -> data){
      r -> next = p;
      p = p -> next;
      r = r -> next;}
    else{
      r -> next = q;
      q = q -> next;
      r = r -> next;}
  }
  if (p!=NULL)
    r -> next = p;
  else if (q!=NULL)
    r -> next = q;
  else//有可能吗
    r -> next = NULL;
}

void sort_demerge(lNode *A, lNode *B, lNode *&C) //为什么&??
{
  lNode *p = A -> next;
  lNode *q = B -> next;
  lNode *s;

  C = A;
  C -> next = NULL;

  free(B);
  
  while(p != NULL && q != NULL)
  {
    if(p -> data <= q -> data){
      r = p;
      p = p -> next;
      r -> next = C -> next;
      C -> next = r;
    }
    else{
      r = q;
      q = q -> next;
      r -> next = C -> next;
      C -> next = r;
    }
  }

  while (p!=NULL){
    r = p;
    p = p -> next;
    r -> next = C -> next;
    C -> next = r;
  }

  while (q!=NULL)
  {
    r = p;
    p = p -> next;
    r -> next = C -> next;
    C -> next = r;
  }

}

 

线性表 逻辑结构 分类

栈FILO

//手加减
int stack[maxSize];
int top = -1;

stack[++top] = e;

e = stack[top--];

 

//括号匹配

int match_pair(char exp[], int n){

  char stack[maxSize];
  int top = -1;
  
  int i;
  for(i = 0; i < n; ++i)
  {
    if(exp[i] == '(')
      stack[++top]='(';
    if(exp[i] == ')')
      if(top == -1) return 0;
      else if(stack[top] = '(') top--;
      else return 0;
  }
  if(top == -1) return 1;
  else return 0;

}



//后缀算式四则运算
int get_value(int a, int b, char op){
  switch(op){
    case '+': return a+b; break;
    case '-': return a-b; break;
    case '*': return a*b; break;
    case '/': if (b != 0) return a/b; else return 0; break;
  }
}

int get_value(char exp[]){
  int i, a, b, g;
  int stack[maxSize];
  int top = -1;

  char op;
  for...
  //exp[x] - '0';
}
  

队列FIFO

lQ -> rear -> next = p;
lQ -> rear = p;

//p = lQ -> front; lQ -> front = p -> next; x = p -> data; free(p);
x = lQ -> front -> data;
lQ -> front = lQ -> front -> next;

 

char str[] = "wa_na_ares,fav_de_spft."

//定长
typedef struct{
  char str[maxSize + 1];
  int length;
}string
 
//变长
typedef struct{
  char *str;
  int length;
}Str

数组不能等号赋值

if(Str.str){
  free(Str.str);
  Str.str = NULL
}

 

函数顺序储存 

链式索引储存

 

有穷 确之 IO 可行

线性表

顺序表 链表

循环琏表 双链表 带头结点否 静态链表

#define maxSize 100

typedef struct{
  int data[maxSize];
  int length;
}

 

单链表

typedef struct lNode{
 int data;
 struct lNode *next;
}lNode

lNode *list1 = (lNode*)malloc(sizeof(lNode));
free(list1);

dlNode

typedef struct dlNode{
  int data;
  struct dlNode *pri
  struct dlNode *next
}

 

int findElem(sList L,int e){
  int i;
  for(i=0; i<L.length; ++i)

 

© 著作权归作者所有

共有 人打赏支持
上一篇: 操作系统机巧
下一篇: 察改調度
E_C_Ares
粉丝 1
博文 60
码字总数 85412
作品 0
河东
私信 提问
PHP 源码阅读日记

最近比较闲,正好借这个时间看看PHP源码,有看到不懂的地方会记录一下,之后会把问题以及答案都写下来。 1.C语法生疏需要复习。(后面会写相关复习的内容) (1)struct 结构体 struct是一种数...

起什么name呢
2016/03/30
22
0
小蚂蚁学习数据结构(5)——线性结构——栈的操作演示

复习之前的内容 链表复习: 数据结构: 狭义: 数据结构是专门研究数据存储的问题。 数据的存储包含两方面,个体的存储,个体之间关系的存储。 广义: 数据结构既包含数据的存储也包含数据的...

嗜学如命的小蚂蚁
2016/01/02
115
0
考研-专业课-c语言

为了我家娘子,猪猪臭 本人计划考研:报考学校北京工业大学--计算机 专业课编号985:教材为C语言程序设计案例教程和严蔚敏的数据结构那本 我知道 本书是没有答案的 下面的全都是 自己写的 并在...

20111564
2014/10/16
0
0
大四搞php开发的妹子该怎么准备面试

坐标在广州,年初开始玩php开发,现在大四发现互联网的寒冬里php的工作好难找前几天面了唯品会,面试官问了好多开发过程中的问题,我没有好好复习自己做过的项目,结果记不清于是不停挖坑给自...

waikei
2015/09/18
4.4K
57
希望各位前辈能给指点一下方向,谢谢。

大家好,我是一名软件工程(嵌入式)的大三学生。如果不考研的话,那么我还有一年就要就业了。 可是我感觉我现在什么真材实料都没有学到,虽然学习了很多课程,比如:C语言,编译原理,操作系...

蝴蝶将死
2014/03/05
163
4

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
3
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
6
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
7
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
5
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部