链表的使用例子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
链表的使用例子---完整版
分享
首次分享者:忘不了的人已被分享7次评论(0)复制链接分享转载举报#include
#include
//**************以下为链表的节点定义**********************
typedef struct node *list_pointer;
typedef struct node{
int data;
struct node *link;
}list_node;
list_pointer init( );
void create( );
void display( );
void add( );
void delete( );
int main( ) {
list_pointer ptr = NULL;
ptr = init( );
create(ptr);
display(ptr);
add(ptr);
display(ptr);
delete(ptr);
display(ptr);
}
//***********************以下为链表的初始化********************* list_pointer init( )
{
list_pointer s;
s = (list_pointer) malloc (sizeof (list_node) );
printf("初始化链表\n");
if (s)
{
s->link = NULL;
return s;
}else
{ printf("空间不足");
return NULL;
}
}
//***********************以下为建表************************ void create(list_pointer ptr)
{
int i,n;
char tmp ;
list_pointer p;
printf ("请输入表的元素个数\n");
scanf ("%d", &n);
for (i = 0; i < n; i++)
{
printf("请输入第%d个元素\n",i+1);
fflush(stdin);
scanf("%d",&tmp);
p = (list_node *)malloc (sizeof (list_node) );
p->data = tmp;
p->link = (ptr)->link;
(ptr)->link = p;
}
}
//***********************展示元素*********************** void display (list_pointer ptr)
{
list_pointer pp;
pp = ptr->link;
printf("顺序表的结点分别是:\n");
while(pp) {
printf("%d\t",pp->data);
pp = pp->link;
}
}
//********************插入元素************************ void add(list_pointer ptr)
{
int n;
list_pointer p;
printf("请输入需要插入的结点:\n");
scanf("%d",&n);
p = (list_pointer) malloc (sizeof (list_node) );
p->data = n;
p->link = ptr->link;
ptr->link = p;
}
//*********************以下为删除元素******************* void delete(list_pointer ptr)
{
int i = 0,n;
list_pointer first,second;
do
{
printf("请输入要删除元素的位置:\n");
scanf("%d",&n);
}while(n < 0);
second = ptr;
while (i { i++; second = second->link; first = second ->link; printf("this is OK\n"); } if (i < n) { printf("表中不存在此元素\n"); }else { printf("this is Ok\n"); second->link = first->link; printf("this is OK\n"); free(first); } }