贵州旅游攻略?
500
2024-04-29
#include <stdlib.h>
#include <stdio.h>
//定义结点数据结构
struct node
{
char cDate;
struct node *next;
}Node;
//建立空链表
void initlist(*p)
{
p=NULL;
}
//插入数据
void creatlist(Node *L; char a[4])
{ L= (Node *)malloc(sizeof(Node));
L->next = NULL; //生成头结点
for(i = 0; i < 4; i++)
{ p = (Node *)malloc(sizeof(Node));
p->next = L->next;
L->next = p;
//将新生成的结点插在头结点和当前第1个数据元素结点之间
}
}
main()
{
char a[4]=abcd;
Node head;
initlist(&head);
creatlist(&head, a[4]);
}
写了个大概,希望对你有帮助
求长度只能循环,设置一个指针p,
if ( p -> next ! = NULL)
{p = head->next , p = p->next , i++} ' i ' 是用来计算总长度的
如果是插入操作 则在定义一个指针 f,以在头结点插入数据为例
f -> next = head -> next , head -> next = f
如果是删除操作,定义一个指针 m ,以删除头结点后一节点为例
head -> next = m -> next , free ( m )
希望对你有帮助
遵义的邮政区码:
563000
遵义,简称“遵”,位于贵州省北部,是国家全域旅游示范区。南临贵阳市,北倚重庆市,西接四川省,是昆筑北上和川渝南下之咽喉。
#include<stdio.h>
int n=0; //全局变量数组中元素个数
/***************************函数说明************************/
void insert(int * ss);
void show(int *ss);
void delete(int * ss);
void updata(int * ss);
/***************************主 函 数**************************/
main()
{
int bb[20]={0},j;
do
{
printf( ╔-----------------------------------------------╗\n); //显示一个简易菜单
printf( ┆ 1 --- 插入(Insert) ┆\n);
printf( ┆ 2 --- 修改(Update) ┆\n);
printf( ┆ 3 --- 删除(Delete) ┆\n);
printf( ┆ 4 --- 显示( Show ) ┆\n);
printf( ┆ 5 --- 退出( Exit ) ┆\n);
printf( ╚-----------------------------------------------╝\n);
printf(请输入所要进行的操作序号: );
scanf(%d,&j); //接受用户的选择
switch(j) //接受用户的函数
{case 1:insert(bb);
break;
case 2:updata(bb);
break;
case 3:delete(bb);
break;
case 4:show(bb);
break;
case 5:break;
default:printf(错误选择!请重选\n);break;
}
}while(j!=5); //直到i被赋值为5
return 0;
}
/**********************************插入函数**************************************/
void insert(int * ss)
{
int i,e,k=n; // i为要插入的位置 e为要插入的值
do{
printf(请输入要插入的位置: );
scanf(%d,&i);
//插入的位置为从 1-----n+1 超出则提示输入有误
if((i>(k+1))||i==0) printf(输入有误!! \n);
}while((i>(k+1))||i==0);//直到输入的i值为 1---k+1
do{
ss[k+1]=ss[k]; //ss[i]后面的元素向后移动
}while((k--)!=(i-1));
printf(请输入要插入的值: );
scanf(%d,&e);
ss[i-1]=e;
n++;
}
/**********************************显示函数**************************************/
void show(int *ss)
{
int i=0;
for(i;i<n;i++)
{
printf( %d ->,ss[i]);
} //printf(\b);
printf(\n);
}
/**********************************删除函数**************************************/
void delete(int * ss)
{
int i,t;
do{
printf(请输入要删除的位置: );
scanf(%d,&i);
if(i>n) printf(输入有误!! 请重新输入: );
}while(i>n);
t=i-1;
do{
ss[t]=ss[t+1];
}while((t++)!=n);
n--;
}
/**********************************修改函数**************************************/
void updata(int * ss)
{
int i,e;
do{
printf(请输入要修改的位置: );
scanf(%d,&i);
if(i>n) printf(输入有误!! 请重新输入: );
}while(i>n);
printf(请输入要修改后的值: );
scanf(%d,&e);
ss[i-1]=e;
}