济南网站建设安卓版,博达网站建设怎么建立下载,手机网站焦点图代码,免费网站免费网站平台链表是怎么发展来的
线性表#xff1a;是n个具有相同特性的数据元素的有限序列。 链表#xff1a;具有线性存储结构的线性表。
为什么需要使用链表#xff1f;#xff08;链表是如何被设计出来的#xff09;
程序开发最重要的部分是如何在项目程序中找到一种合适的、好…链表是怎么发展来的
线性表是n个具有相同特性的数据元素的有限序列。 链表具有线性存储结构的线性表。
为什么需要使用链表链表是如何被设计出来的
程序开发最重要的部分是如何在项目程序中找到一种合适的、好的数据表示方法这样可以让程序设计起来更容易数据处理算法更为简单。 C语言的内置数据类型有简单变量、数组、指针、结构体、联合、枚举等。 找到正确的数据表示方法不仅是选择一种数据类型而是要考虑进行哪些数据操作要确定如何存储数据如何访问数据如何为数据类型定义有效的操作增删查改。 举例创建通讯录 思考 应该使用什么数据形式存储信息 由于通讯录的每个人的个人信息有多种所以使用结构体来表示比较合适。 如何表示多个人用结构体数组、动态数组还是其他形式。 每个人是否要按照首字母顺序排列是否要用名字来查找通讯录里的人 程序设计的需求行为或操作将影响如何存储信息
程序举例 编写一个程序输入某组织人员的名字和年龄有多种信息先从简单的开始。
#include stdio.h
#include string.h#define PNUM 100 //总人数
#define NAME_SIZE 20//人名字符大小typedef struct peoplecard
{char name[NAME_SIZE];int age;
}char* manage_gets(char str[],int len_limt);
int main(void)
{peoplecard peol[PNUM];//定义组织人员结构体数组int i,j;puts(“Enter first peol name”);//输入第一个人员的名字while((i PNUM)( manage_gets(peol[i].name, NAME_SIZE)!NULL) ( peol[i].name[0]!’\0’)){puts(“Enter your age 0-200:”);scanf(“%d”, peol[i].age);while(getchar()!’\n’){continue;}puts(“Enter next people name(empty line to stop):”);}if(i0){puts(“No data enter!”);}else{printf(“ Here is the people list:\n”);for(j0;ji;j)//是小于i而不是i1因为在前面i会多加一次。{printf(“people :%s, age:%d\n”, peol[j].name, peol[j].age);}printf(“end!\n”);}return 0;
}char* manage_gets(char str[],int len_limt)
{char* ret_val;char* find;ret_val fgets(str,len_limt,stdin);if(ret_val){find strchr(str,’\0’);if(find){*find ‘\0’;}else{while(getchar()!’\n’){continue;}}}return ret_val;
}