| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:求各位大神帮帮忙!!线性表的!
只看楼主 加入收藏
hikaru04
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-6-5
收藏
 问题点数:0 回复次数:0 
求各位大神帮帮忙!!线性表的!
1、建立一个类型为整型线性顺序表的头文件和基本操作,特别是初始化操作、插入操作、删除操作、查找操作、遍历操作等。
(shunxubiao.h)
2、创建有10个元素的线性表,验证插入、删除、查找操作的结果。
(shunxubiao.c)
3、建立一个类型为整型单链表的头文件和基本操作,特别是初始化操作、插入操作、删除操作、查找操作、遍历操作等。
(danlianbiao.h)
4、创建有10个元素的线性单链接表,验证插入、删除、查找操作的结果
(danlianbiao.c)
5、将事先建立好的顺序表La和Lb合并成一个顺序表。
要求:将Lb中不同于La中的元素插入到La的最后面。
(danlianbiao_hebing.c)
======================================

我已经编好头文件了。。。
#define TRUE    1
#define FALSE   0
#define OK      1
#define ERROR   0
#define INFEASIBLE  -1
#define OVERFLOW    -2
//Status
typedef int Status;
 
#define LIST_ INIT_ SIZE   100
#define LISTINCREMENT      10
typedef struct{
     ElemType *elem;
     int      length;
     int      listsize;
}SqList;
 
Status InitList_Sq(SqList &L) {  // 算法2.3
  // 构造一个空的线性表L。
  L.elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
  if (!L.elem) return OK;        // 存储分配失败
  L.length = 0;                  // 空表长度为0
  L.listsize = LIST_INIT_SIZE;   // 初始存储容量
  return OK;
} // InitList_Sq
 
Status ListInsert_Sq(SqList &L, int i, ElemType e) {  // 算法2.4
  // 在顺序线性表L的第i个元素之前插入新的元素e,
  // i的合法值为1≤i≤ListLength_Sq(L)+1
  ElemType *p;
  if (i < 1 || i > L.length+1) return ERROR;  // i值不合法
  if (L.length >= L.listsize) {   // 当前存储空间已满,增加容量
    ElemType *newbase = (ElemType *)realloc(L.elem,
                  (L.listsize+LISTINCREMENT)*sizeof (ElemType));
    if (!newbase) return ERROR;   // 存储分配失败
    L.elem = newbase;             // 新基址
    L.listsize += LISTINCREMENT;  // 增加存储容量
  }
  ElemType *q = &(L.elem[i-1]);   // q为插入位置
  for (p = &(L.elem[L.length-1]); p>=q; --p) *(p+1) = *p;
                                  // 插入位置及之后的元素右移
  *q = e;       // 插入e
  ++L.length;   // 表长增1
  return OK;
} // ListInsert_Sq
 
Status ListDelete_Sq(SqList &L, int i, ElemType &e) {  // 算法2.5
  // 在顺序线性表L中删除第i个元素,并用e返回其值。
  // i的合法值为1≤i≤ListLength_Sq(L)。
  ElemType *p, *q;
  if (i<1 || i>L.length) return ERROR;  // i值不合法
  p = &(L.elem[i-1]);                   // p为被删除元素的位置
  e = *p;                               // 被删除元素的值赋给e
  q = L.elem+L.length-1;                // 表尾元素的位置
  for (++p; p<=q; ++p) *(p-1) = *p;     // 被删除元素之后的元素左移
  --L.length;                           // 表长减1
  return OK;
} // ListDelete_Sq
 
int LocateElem_Sq(SqList L, ElemType e,
        Status (*compare)(ElemType, ElemType)) {  // 算法2.6
  // 在顺序线性表L中查找第1个值与e满足compare()的元素的位序。
  // 若找到,则返回其在L中的位序,否则返回0。
  int i;
  ElemType *p;
  i = 1;        // i的初值为第1个元素的位序
  p = L.elem;   // p的初值为第1个元素的存储位置
  while (i <= L.length && !(*compare)(*p++, e))
    ++i;
  if (i <= L.length) return i;
  else return 0;
} // LocateElem_Sq
 
void TraverList(LinearList& L)
{
    for(int i=0;i<L.size;i++)
        cout<<L.list[i]<<' ';
    cout<<endl;
}



这个头文件有错误吗。。、。。


我不会编写源文件。。。。急求   
搜索更多相关主题的帖子: 元素 线性表 
2012-06-05 11:15
快速回复:求各位大神帮帮忙!!线性表的!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015969 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved