当前位置:文档之家› 软件技术基础实验一

软件技术基础实验一

#define num 6
int a[20];
int i;
typedef struct link
{ int data;
struct link *next;
}link;
/*初始化单链表*/
(
L= NULL;
L= ( link *)malloc(sizeof(link));/*建立表头结点*/
L->next = NULL;
printf("删除后的链表为:\n");
print(L);
printf("\n");
}
4.
若删除文件中第6个数,即将num宏定义为6即可删除66.
I*D:\Progiraim File5\Microsoft Visual £tudio\MyProjects\jisuanl\Debug\jisuanl.exe"
0 99 S8 55 77 55 44 33 22 11
Ppgssany key to continue
若删除文件中第5个数,则将链表中两个55删除
3.输出单链表;
4.在第四个元素位置上插入从文件中读取的单个元素;
5.删除该单链表的从文件中指定序数的元素;
3.完整的源程序
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define max 10
L->next=s;
i++;
}
fclose(fp);
}
void print(link *L)/*输出单链表*/
(
link *p=L->next;
while(p!=NULL)
(
printf ("%d ",p->data);
p=p->next;
}
printf("\n");
int insert(link *L, int i)
(
int j,m;
link *p,*s;
j=1;p=L->next;
while((j<i-1)&&(p!=NULL))
( j++;p=p->next;
}
if(j==i-1)
( m=a[i];
s=(struct link*)malloc(sizeof(struct link));
s->data=a[i];
文件中的
allJ=22
aI2]=33
a[33=44
a [6] =77
a [73-88
a [81=99
at?J=0
国头插法插入后的链表为;
0 99 8S776G 55 44 33 22 li
第四个元素位置插入的数为
员入后的槌表为
09988 SS 77 66 55 44 33 22 11
删除掉的教为:
删除后的概表为:
else {q->next=p2->next;
delete(p2);
}
}
void main()
{ int t,m;
பைடு நூலகம்link *L;
L=(struct link*)malloc(sizeof(struct link));
initlink(L);
hcreat(L);
printf("用头插法插入后的链表为:\n");
L->data = 0;
}
void hcreat(link *L)/*头插法插入从文件中读取的多个元素*/
( link *s;
L->next=NULL;
s=(struct link*)malloc(sizeof(struct link));
int i=0;
FILE *fp;
if((fp=fopen("h:\\a.txt”,"r"))==NULL)
(q=p1;
p1=p1->next;
}
if(p1==NULL) cout<<"要删除的节点不存在";
else (q->next=p1->next;
delete(p1);
}
while((p2!=NULL)&&(p2->data!=a[num-1]))
(q=p2;
p2=p2->next;
}
if(p2==NULL) cout<<"要删除的节点不存在";
printf("error!\n");
printf("文件中的数为:\n");
while(!feof(fp)&& i<max)
(
fscanf(fp,"%d",&a[i]);
printf("a[%d]=%d\n”,i,a[i]);
s=new link;
s->data=a[i];
s->next=L->next;
print(L);
m=insert(L, 4);
printf("第四个元素位置插入的数为:\n");
printf("%d\n”,m);
printf("插入后的链表为:\n");
print(L);
printf("删除掉的数为:\n");
t=a[num-1];
printf("%d\n",t);
Delete(L, t);
s->next=p->next;
p->next=s;
}
return m;
}
void Delete(link *L,int t)/*在第四个元素位置上插入从文件中读取的单个元素*/
( link *p1,*p2,*q;
q=L;p1=p2=L->next;
while((p1!=NULL)&&(p1->data!=a[num-1]))
软件技术基础实验一
单链表的各种基本运算的实现
单链表的各种基本运算的实现
1.实验目的:
1.熟悉c语言上机环境;
2.实现单链表的创建;
3.掌握单链表的基本操作:插入、删除、输出等运算 ;
2.实验内容:
编写一个程序,实现单链表的各种基本操作,并在此基础上设计一个
主程序完成如下功能:
1.初始化单链表:
2.依次采用头插法插入从文件中读取的多个元素;
相关主题