测试通过! /**//* * 线性表的链式存贮 */#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#define MEM_SIZE 32struct list...{ int size; int *link;};/**//* * 初始化顺序表 */int initOrderTable(struct list *p)...{ (*p).link = (int *)malloc((*p).size*MEM_SIZE); if(!(*p).link) ...{ printf("分配不成功"); } else ...{ printf("分配成功"); (*p).size = 0; } return 1;}/**//* * 表是否为空 */bool isEmpty(struct list *p)...{ if((*p).size ==0 ) ...{ return true; } return false;}/**//* * 插入表 */int insertOrderTable(struct list *p,int i)...{ // 空表的情况 if((*p).size ==0 ) ...{ (*p).link[0] = i; (*p).size++; } else ...{ (*p).link[(*p).size] = i; (*p).size++; } return 1;}/**//* * 遍历表 */int travelOrderTable(struct list *p)...{ // 首先判断是否为空 printf("遍历表"); if((*p).size ==0) ...{ printf("表为空"); } else ...{ for(int i=0; i<(*p).size; i++) ...{ printf("%5d ",(*p).link[i]); } } return 1;}/**//* * 更新表 */int updateOrderTable(struct list *p,int pos,int value)...{ //去除其他判断 仅供测试 (*p).link[pos-1] = value; return 1;}/**//* * 查找表 */int searchOrderTable(struct list *p,int value)...{ for(int i=0; i<(*p).size; i++) ...{ if((*p).link[i] == value) ...{ printf("数据找到"); return 1; } } return 0;}/**//* * 删除表 */int delOrderTable(struct list *p,int value)...{ int i, j; /**//* 从线性表中顺序查找出值为value的第一个元素 */ for(i = 0; i < (*p).size; i++)...{ if((*p).link[i] == value)...{ break; } } /**//* 若查找失败,表明不存在值为value的元素,返回0 */ if(i == (*p).link[i])...{ return 0; } /**//* 删除值为x的元素L->list[i] */ for(j = i + 1; j < (*p).size; j++)...{ (*p).link[j-1] = (*p).link[j]; } (*p).size--; return 1;}/**//* * 主程序入口 */int main(int argc, char* argv[])...{ struct list p; printf("请输入size: "); scanf("%d",&p.size); initOrderTable(&p); insertOrderTable(&p,12); // 申请内存空间大小 //s = (char *)malloc(p.size*MEM_SIZE); //p.link = gets(s); printf(" "); if(isEmpty(&p)) ...{ printf("表为空!"); } else ...{ printf("表不为空!"); } printf(" "); travelOrderTable(&p); printf(" "); insertOrderTable(&p,23); printf(" "); travelOrderTable(&p); printf(" "); updateOrderTable(&p,2,333); printf(" "); travelOrderTable(&p); printf(" "); searchOrderTable(&p,333); printf(" "); //printf("size:%d, maxSize:%d, name:%s ",p.size,p.maxSize,p.link); delOrderTable(&p,12); travelOrderTable(&p); printf(" "); return 0;} /**//* * 线性表链式存储 */#include "stdafx.h"#include <stdio.h>#include <malloc.h>#define MAX_SIZE 100struct link...{ int data; struct link *next;};/**//* * 初始化链接表 */int initLinkTable(struct link **p)...{ *p = NULL; return 1;}/**//* * 插入数据 */int insertLinkTable(struct link **p,int value)...{ struct link *newP; newP = (struct link *)malloc(sizeof(struct link)); if(newP == NULL) ...{ printf("内存分配失败,退出运行! "); } else ...{ (*newP).data = value; (*newP).next = *p; *p = newP; } return 1;}/**//* * 遍历表 */int travelLinkTalbe(struct link *p)...{ while(p != NULL) ...{ printf("%d ",(*p).data); p= (*p).next; } printf(" "); return 1;}/**//* * 更新表 */int updateLinkTable(struct link *p,int oldValue,int newValue)...{ while(p != NULL) ...{ if((*p).data == oldValue) ...{ (*p).data = newValue; printf("Updated Success! "); return 1; } p= (*p).next; } return 0;}/**//* * 删除表 */int delLinkTable(struct link *p,int value)...{ struct link *temp; while(p != NULL) ...{ if((*p).data == value) ...{ break; } temp = p; p= (*p).next; } // 末尾 if(p == NULL) ...{ printf("Not Find! "); return 0; } // 表头 if(temp == NULL) ...{ p = (*p).next; printf("Deleted Success! "); } else ...{ (*temp).next = (*p).next; printf("Deleted Success! "); } return 1;}/**//* * 插入表 */int insertLinkTable(struct link *p,int pos,int value)...{ int i=0; struct link *newP,*temp; while(p) ...{ temp = p; p = (*p).next; if(pos == i) ...{ break; } i++; } newP = (struct link *)malloc(sizeof(struct link)); if(newP == NULL) ...{ printf("内存分配失败,退出运行! "); } else ...{ (*newP).data = value; (*newP).next = p; (*temp).next = newP; } return 1;}/**//* * 程序入口 */int main(int argc, char* argv[])...{ struct link *p; printf("Link Table! "); initLinkTable(&p); insertLinkTable(&p,12); insertLinkTable(&p,33); insertLinkTable(&p,55); travelLinkTalbe(p); updateLinkTable(p,33,3322); travelLinkTalbe(p); delLinkTable(p,121); travelLinkTalbe(p); delLinkTable(p,12); travelLinkTalbe(p); insertLinkTable(p,1,0); travelLinkTalbe(p); return 0;}