数据结构实验报告(2)

2018-12-08 20:27

3、程序源代码 #include #include typedef struct list{ int data;

struct list *next; }LIST;

void InitList(LIST **p) {

*p=NULL; }

void InsertList1(LIST **p,int item,int rc) {

int i;

LIST *u,*q,*r;

u=(LIST *)malloc(sizeof(list)); u->data=item;

for(i=1,r=*p;i

q=r;

r=r->next; }

if(r==*p) *p=u; else

q->next=u; u->next=r; }

void InsertList2(LIST **p,int item) {

LIST *u,*q,*r;

u=(LIST *)malloc(sizeof(list)); u->data=item;

for(r=*p;r!=NULL&&r->datanext); if(r==*p) *p=u; else

q->next=u; u->next=r; }

int DeleteList(LIST **p,int item) {

LIST *q,*r; q=*p; r=q;

if(q==NULL) return 1; if(q->data==item) {

*p=q->next; free(r); return 0; }

for(;q->next!=NULL&&q->data!=item;r=q,q=q->next); if(q->data==item) {

r->next=q->next; free(q); return 0; }

return 1; }

int FindList(LIST *p,int item) {

int i;

for(i=1;p->data!=item&&p!=NULL;p=p->next,i++); return(p==NULL)?-1:i; }

void OutputList(LIST *p) {

while(p!=NULL) {

printf(\ p=p->next; }

printf(\}

void FreeList(LIST **p) {

LIST *q,*r;

for(q=*p;q!=NULL;) {

r=q;

q=q->next; free(r); }

*p=NULL; }

int main() {

LIST *p;

int choice,i,rc; InitList(&p); while(1) {

printf(\

printf(\指定位置追加-----\\n\ printf(\升序追加---------\\n\ printf(\查找结点---------\\n\ printf(\删除结点---------\\n\ printf(\输出链表---------\\n\ printf(\清空链表---------\\n\ printf(\退出-------------\\n\ printf(\

printf(\请输入(0~6)选择操作:\ fflush(stdin);

scanf(\ switch(choice) {

case 0:

return -1; case 1:

printf(\请输入新增结点的键值和位置:\ scanf(\ InsertList1(&p,i,rc); break; case 2:

printf(\请输入新增结点的键值:\ scanf(\ InsertList2(&p,i); break; case 3:

printf(\请输入要查找结点的键值:\ scanf(\ rc=FindList(p,i);

if(rc>0)

printf(\位置为:%d\\n\ else

printf(\没找到\\n\ break; case 4:

printf(\请输入要删除结点的键值:\ scanf(\ rc=DeleteList(&p,i); if(rc==0)

printf(\删除成功\\n\ else

printf(\没找到\\n\ break; case 5:

printf(\链表内容为:\\n\ OutputList(p); break; case 6:

FreeList(&p); break; } }

printf(\感谢您的使用!再见!\\n\}


数据结构实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:HP工作站 BIOS说明 适用Z228 Z440 Z230 Z640 Z840 Z800 Z620 Z42

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: