[セットトップ]データ構造-チェーンテーブルの基本操作サブ関数の方式


#include<stdio.h>
#include<stdlib.h>

//         
typedef int TELM;
typedef struct link{    
<pre name="code" class="plain">TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> date1;                                               //   </span>
struct students * next;//ポインタフィールド}stu;//データ関数void*add(){stu*head=NULL;stu*p=NULL;stu*temp=NULL;
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> n;              </span>
printf(「データを入力してください.0の場合は終了:」);scanf("%d",&n); while(n!=0){ p=(stu *)malloc(sizeof(stu));p->date1=n;p->next=NULL;if(head==NULL){head=p;}else{ temp->next=p;} temp=p; printf(「データを入力してください.0の場合は終了:」);scanf("%d",&n); }return head;}//関数void change(stu*head){stu*pを変更します.
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> i;</span>
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> n;</span>
printf(「変更するデータを入力してください:」);scanf("%d",&i);//初期化ポインタp=head;while(p!=NULL){if(p->date 1==i){printf("新しいデータを入力してください");scanf("%d",&n);p->date 1=n;}p=p->next; }}//検索関数void search(stu*head){
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> i;</span>
stu *p;int m=1;printf(「検索するデータを入力してください」);scanf("%d",&i);p=head;while(p!=NULL){if(p->date 1==i){printf(「おめでとう!あなたが探しているデータが存在します.それは%dデータです」,m);p=p->next;m++; } }//関数void del(stu*head){を削除
TELM <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> i;</span>
stu *p=NULL;printf(「削除するデータを書いてください」);scanf("%d",&i);p=head;while(1){if(p->next->next){if(p->next->date1==i){p->next=p->next->next;}else{p=p->next;}}else{if(p->next->date1==i)p->next=NULL;break;}}p=head;if(p->date1==i){head=p->next;}}//出力関数void print(stu*head){stu*p=head;printf("<--------現在入力されているデータは次のようにあります");while(p!=NULL){printf("%d",p->date 1);p=p->next;}//メイン関数void main(){stu*head=NULL;head=add();print(head);change(head);print(head);search(head);print(head);del(head);print(head);