数据结构(复习提纲)【整理】.docVIP

  • 4
  • 0
  • 约8.81千字
  • 约 11页
  • 2019-10-21 发布于山西
  • 举报
2010年 复习提纲 第一章 数据、数据结构的概念; 基本逻辑结构的种类; 集合 线性 树形 图状 基本存储方式的种类; 顺序 链式 散列 索引 算法、算法的时间复杂度以及其计算。 算法的五大特性: 输入 输出 确定性 有穷性 有效性 时间复杂度的计算:忽略常数与中间变量,循环套循环用乘法 第二章 线性表的概念; 顺序存储和链接存储的线性表的数据结构、特性; 顺序存储的特性:查找方便,不易扩充 链接存储的特性:插入删除方便 顺序存储和链接存储的线性表的基本算法:创建、插入、查找、删除等; 链表的其他形式(带表头、循环、双向、双向循环等)的概念及基本算法(与一般链表的不同处)。 带表头:便于其后结点执行标准化操作 循环:首尾相接 双向:既可以查找前继又可以查找后继 双向循环:结合以上两点 链表逆转; 第二章相关算法列举如下 1.。顺序线性表的插入 Int sq_insert(int list[],int *p_n,int i,int x) { Int j; If(i0||i*p_n) return(1); If(*p_n==MAXSIZE) return(2); For(j=*p_n;jI;j--) List[j]=list[j-1]; List[i]=x; (*p_n)++; Return(0); } 2.顺序线性表的删除 Int sq_delete(int list[],int *p_n,int i) { Int j; If(i0||i=*p_n) return(1); For(j=i+1;j*p_n;j++) List[j-1]=list[j]; (*p_n)--; Return(0); } 3.链式线性表的创建 NODE *create_link_list(int n) { int i; NODE *p,*q; NODE *p_head; if(n==0) return(NULL); p_head=new(NODE); p_head-data=-1; p=p_head; for(i=1;i=n;i++) { printf(请输入第%d个节点的值\n,i); q=new(NODE); scanf(%d,(q-data)); p-link=q; p=q; } q-link=NULL; return(p_head);/*返回的是假头*/ ※4.链式线性表的插入(i之后) Int insert(NODE* *p_head,int i,int a) { int n=0; NODE *p,*q,*r; p=*p_head; if(i1) return(0); while((p!=NULL)(ni)) { If(p-data!=-1) n++; q=p; p=p-link; } r=new(NODE); r-data=a; r-link=q-link; q-link=r; } ※5.链式线性表的删除 int del(NODE* *p_head,int I) { NODE *p

文档评论(0)

1亿VIP精品文档

相关文档